Home API Notes

Introduction: Zeen

Hello, my name is zeen and today we will be presenting big idea 3. Our topics include 2d arrays, iteration, and lists and dictionaries.

Objectives

Master the concepts of iteration, list, 2d-arrays, Dictionaries, and APIs

Vocab

Here is some vocab during the lesson, you should be familar with them already no need for me to read these out, now I will pass the speaking off to Kush

  • Iteration: A process that repates itself
  • Array: Sometimes called a list, can keep strings and intergers inside it
  • 2D-Array: A collection of data elements arranged in a grid-like structure with rows and columns
  • Mutable: the ability to be changed or modified
  • Key: A Singular identifier that is associated with a certin value

1: 2D Array

Tic Tac Toe:Kush Sirohi

  • What are some examples of 2d Arrays?

Examples of 2D Arrays include: A chessboard where each row represents a row of the board and each column represents a column of the board. A spreadsheet, where each row represents a record and each column represents a specific field. Or a basic game board, where each row represents a row of the board and each column represents a column of the board.

  • What is a modern day game that could be classified as a 2D array?

Tetris is a modern day puzzle game where players must stack falling blocks into complete rows. The game board is a 2D array, with each row representing a row of the board and each column representing a column of the board.

array = ["Hello", "Hi", "Whats up"]
twoDArray = [["Name", "ID", "Age"], ["Kush", "1", "16"], ["Finn", "2", "16"]]

print(f"This is a normal array: {array}")

print("This is a 2D array")
for row in twoDArray:
    print(row)
This is a normal array: ['Hello', 'Hi', 'Whats up']
This is a 2D array
['Name', 'ID', 'Age']
['Kush', '1', '16']
['Finn', '2', '16']

How I used 2D Arrays (game example)

  • Describe a 2D array in your own words

A 2D array is one with two dimensions, or axes. This means it can be viewed as a rectangular grid of elements. A 2D array element is uniquely recognized by its row and column indexes.

board = [[' ', ' ', ' '],
         [' ', ' ', ' '],
         [' ', ' ', ' ']]
         
# Function to print the current state of the game board
def print_board():
    print("   0   1   2")
    for i in range(3):
        print(i, end='  ')
        for j in range(3):
            print(board[i][j], end=' ')
        print()

# Function to check if a player has won the game
def check_win(player):
    # Check rows for a win
    for i in range(3):
        if board[i][0] == player and board[i][1] == player and board[i][2] == player:
            return True
    # Check columns for a win
    for j in range(3):
        if board[0][j] == player and board[1][j] == player and board[2][j] == player:
            return True
    # Check diagonals for a win
    if board[0][0] == player and board[1][1] == player and board[2][2] == player:
        return True
    if board[0][2] == player and board[1][1] == player and board[2][0] == player:
        return True
    # If no win condition is met, return False
    return False

# Function to check if the game is a tie
def check_tie():
    for i in range(3):
        for j in range(3):
            if board[i][j] == ' ':
                return False
    return True

# Function to play the game
def play_game():
    # Initialize player and turn counter
    player = 'X'
    turns = 0
    # Loop until the game is over
    while True:
        # Print the current state of the board
        print_board()
        # Get the player’s move
        row = int(input(f"{player}'s turn. Enter row (0-2): "))
        col = int(input(f"{player}'s turn. Enter column (0-2): "))
        # Check if the move is valid
        if board[row][col] == ' ':
            board[row][col] = player
            turns += 1
            # Check if the player has won
            if check_win(player):
                print_board()
                print(f"{player} wins!")
                return
            # Check if the game is a tie
            if check_tie():
                print_board()
                print("It's a tie!")
                return
            # Switch players
            player = 'O' if player == 'X' else 'X'
        else:
            print("That space is already taken. Try again.")

# Start the game
play_game()

2: Iteration

Robot Game:Finn Carpenter- What is the definition of iteration in your own words

Iteration is the process of repeating a procedure until the desired result is obtained. For example, a for loop can use iteration to step though objects in a list or array.

times = 0
numbers = [1, 2, 3, 4, 5]

## Loops
for i in range(5):
    print("hi")


while times <= 5:
    print("hello")
    times = times + 1

## Function with a parameters
def print_numbers(x):
    for num in x:
        print(num)

print_numbers(numbers)
hi
hi
hi
hi
hi
hello
hello
hello
hello
hello
hello
1
2
3
4
5

Iteration Game

  • Link to the game
  • Play the levels (only play the first 2 in class)
  • Explain how the game relates to iteration

The game is played by repeatedly pressing the arrow keys to move the square around the screen. This is an example of iteration, as the player is repeatedly performing the same action in order to achieve a goal.

How I used iteration (game example)

  • What parts of the code use iteration

The for loops in the movements array. These loops iterate over the UPinput, DOWNinput, LEFTinput, and RIGHTinput variables to create an array of movements.

function run() {
    // Read input values from the HTML document and convert them to integers.
    UPinput = parseInt(document.getElementById("up").value);
    DOWNinput = parseInt(document.getElementById("down").value);
    LEFTinput = parseInt(document.getElementById("left").value);
    RIGHTinput = parseInt(document.getElementById("right").value);
    looper = parseInt(document.getElementById("loop").value);

    runner.style.opacity = 0;
    

    // Create an array to hold the movements.
    let movements = [];

    // Push 'up' movements to the array.
    for (let l = 0; l < looper; l++) {
        for (let k = 0; k < UPinput; k++) {
            movements.push(up);
        }

        // Push 'down' movements to the array.
        for (let i = 0; i < DOWNinput; i++) {
            movements.push(down);
        }

        // Push 'left' movements to the array.
        for (let a = 0; a < LEFTinput; a++) {
            movements.push(left);
        }

        // Push 'right' movements to the array.
        for (let c = 0; c < RIGHTinput; c++) {
            movements.push(right);
        }
    }


    // Set the initial index to 0 and execute each movement in sequence with a delay of 800 milliseconds.
    let index = 0;
    let intervalId = setInterval(() => {
        // If the end of the movements array has been reached, stop executing movements.
        if (index >= movements.length) {
            clearInterval(intervalId);
            win(); // Call the win function.
            return;
        }
        movements[index](); // Execute the movement at the current index.
        index++; // Increment the index.
    }, 800);
}

3: List and Dictionaries

Scramble Game:Edwin

List = [1, 2, 3, 4, 5]
Dict = {
    1: "Hi",
    2: "Hello",
    3: "Whats Up"
}

# Why Do I call 0 for the first thing in a list, but 1 for Dict
#

print(List[0])
print(Dict[1])
1
Hi

How I used a dictonary to make a game

Memory Game:James- Link

  • Code

How I used List to make a game

  • Explain which parts of the code use lists

First, the word_list variable is a list of computer science words. Secondly, the scrambled_word variable is a list of the letters in the randomly selected word, in a random order. Lastly, the guesses variable is a list of the number of guesses the user has made.

  • Explain what list manipulation is happening in that part

The random.sample() function selects a random sample of elements from a list and is used to select a random sample of letters from the word string. The letters in the scrambled_word list are then placed in a random order.

import random

word_list = ["python", "computer", "programming", "algorithm", "database", "function", "variable", "loop", "iteration", "array", "mutable", "insertion", "deletion", "key", "API"]

word = random.choice(word_list)

scrambled_word = "".join(random.sample(word, len(word)))

print(f"Unscramble the following Computer Science Word: {scrambled_word}")

hints = 1
guesses = 1
guess = ""

while guess != word and guesses <= 4:
    guess = input("What's the unscrambled word? ").lower()
    if guess != word:
        print("Sorry, that's not the word. Try again!")
        if guesses == 1:
            guesses += 1
        elif guesses == 2:
            print(f"Hint 1: The first letter of the word is '{word[0]}'")
            guesses += 1
        elif guesses == 3:
            print(f"Hint 2: The second letter of the word is '{word[1]}'")
            guesses += 1
        else:
            print(f"All 4 Guesses have been used, you didn't unscramble the word, the word was {word}")
            guesses += 1
    else:
        print("Congratulations, you unscrambled the word!")
Unscramble the following Computer Science Word: uatlmeb
Congratulations, you unscrambled the word!

Hacks: Your Score/1

General 0.3

  • Copy this noteboook into your personal fastpages
  • Answer all questions
    • put the question in a new markdown block (so we can grade faster)
  1. What are some examples of 2d Arrays?

Examples of 2D Arrays include: A chessboard where each row represents a row of the board and each column represents a column of the board. A spreadsheet, where each row represents a record and each column represents a specific field. Or a basic game board, where each row represents a row of the board and each column represents a column of the board.

  1. What is a modern day game that could be classified as a 2D array?

Tetris is a modern day puzzle game where players must stack falling blocks into complete rows. The game board is a 2D array, with each row representing a row of the board and each column representing a column of the board.

  1. Describe a 2D array in your own words

A 2D array is one with two dimensions, or axes. This means it can be viewed as a rectangular grid of elements. A 2D array element is uniquely recognized by its row and column indexes.

  1. What is the definition of iteration in your own words

Iteration is the process of repeating a procedure until the desired result is obtained. For example, a for loop can use iteration to step though objects in a list or array.

  1. Explain how the game relates to iteration

The game is played by repeatedly pressing the arrow keys to move the square around the screen. This is an example of iteration, as the player is repeatedly performing the same action in order to achieve a goal.

  1. What parts of the code use iteration

The for loops in the movements array. These loops iterate over the UPinput, DOWNinput, LEFTinput, and RIGHTinput variables to create an array of movements.

  1. Explain which parts of the code use lists

First, the word_list variable is a list of computer science words. Secondly, the scrambled_word variable is a list of the letters in the randomly selected word, in a random order. Lastly, the guesses variable is a list of the number of guesses the user has made.

  1. Explain what list manipulation is happening in that part

The random.sample() function selects a random sample of elements from a list and is used to select a random sample of letters from the word string. The letters in the scrambled_word list are then placed in a random order.

Iteration 0.2 (can get up to 0.23)

  • Get to level 5
    • Take ScreenShots of your name inside the box an put them in your ticket

image.png

image.png

image.png

image.png

image.png

  • Create a code segment with iteration that does something cool
a, b = 0, 1

# loop through 10 times to generate the first 10 numbers
# First ten numbers in the Fibonacci sequence 
for i in range(10):
    print(a)
    a, b = b, a + b
0
1
1
2
3
5
8
13
21
34

2D array 0.2 (can get up to 0.23)

  • Explain how the tic tac toe game works

The code for the game creates a 3x3 grid and allows two players to take turns placing X's and O's. The first player to get three of their marks in a row wins the game. If all 9 squares are filled and no player has three marks in a row, the game is a tie.

  • Give 3 Examples of games that can be made from 2D arrays
  1. Connect four: This is another classic game that can be played by two players. Each player takes turns dropping their colored disc into a 7x6 grid. The first player to get four of their discs in a row, either horizontally, vertically, or diagonally, wins the game.

  2. Minesweeper: This is a single-player game where the player must clear a grid of mines without detonating any of them. The player is given clues about the location of the mines, and must use this information to safely navigate the grid.

  3. Sudoku: This is a single-player puzzle game where the player must fill a 9x9 grid with numbers from 1 to 9. Each row, column, and 3x3 subgrid must contain each number exactly once.

List and Dictionaries 0.2 (can get up to 0.23)

  • Explain the differences between Lists and Dictionaries

Lists are ordered data compilations. They can hold a wide range of data types, including strings, numbers, and objects. Lists are formed with square brackets, and their elements are separated by commas. Dictionaries, on the other hand, are unorganized compilations of facts. Curly brackets are used to build them, and dictionary items are key-value pairs. A key is a value's unique identifier. Any data type, including texts, numbers, and objects, can be used as a value.

Overall:

  1. Lists are faster than dictionaries for accessing elements by index.
  2. Dictionaries are faster than lists for accessing elements by key.
  3. Lists can store duplicate elements.
  4. Dictionaries cannot store duplicate keys.
  • Make a code block that manipulates either a list or a dictionary

Code that manipulates a list

my_list = ["apple", "banana", "cherry"]

# Add an element to the list
my_list.append("orange")

# Remove an element from the list
my_list.remove("banana")

# Sort the list
my_list.sort()

# Reverse the order of the list
my_list.reverse()

# Get the length of the list
print(len(my_list))

# Print the list
print(my_list)
3
['orange', 'cherry', 'apple']

Code that manipulates a dictionary

dictionary = {"key1": "value1", "key2": "value2"}

# Add a new key-value pair to the dictionary
dictionary["key3"] = "value3"

# Remove a key-value pair from the dictionary
del dictionary["key2"]

# Get the value of a key in the dictionary
value = dictionary["key1"]

# Get the length of the dictionary
length = len(dictionary)

# Print the dictionary
print(dictionary)
{'key1': 'value1', 'key3': 'value3'}