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
  • A seating plan for a room that is organized by rows and columns.
  • A spreadsheet, where each row represents a record and each column represents a specific field.
  • What is a modern day game that could be classified as a 2D array
  • The Game of Life, as it takes place on a board with a grid on it, and each cell of the grid is either alive or dead.\
  • 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 an array which is constructed with an x and y axis, and it can be indexed by their rows and columns.
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 defenition of iteration in your own words

  • Iteration involves repeating a process until a desired outcome is achieved. One way to accomplish this is through the use of a for loop, which can iterate over the elements of 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)

Iteration Game

  • Link to the game
  • Play the levels (only play the first 2 in class)
  • Explain how the game relates to itertation
  • To play the game, the player must use the arrow keys to navigate the square around the screen. This process involves iterating over the same action in order to reach a particular objective, such as scoring points or completing a level.

How I used iteration (game example)

  • What parts of the code use iteration?
  • The for loop at line 16.
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])

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 To begin with, the word_list contains a collection of computer science-related words. Additionally, the scrambled_word variable represents the letters of a randomly chosen word, arranged in a haphazard sequence. Finally, the guesses variable tracks the number of attempts made by the user.
  • Explain what list manipulation is happening in that part Using the random.sample() function, one can randomly select a subset of elements from a given list. In this particular case, the function is applied to the letters in the word string to generate a random assortment of letters, which are subsequently rearranged in a random order to create the scrambled_word list.
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: yke
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)

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
  • Create a code segment with iteration that does something cool

2D array 0.2 (can get up to 0.23)

  • Explain how the tic tac toe game works
  • Give 3 Examples of games that can be made from 2D arrays

List and Dictionaries 0.2 (can get up to 0.23)

  • Explain the differences between Lists and Dictionaries
  • Make a code block that manipulates either a list or a dictionary

General

  1. What are some examples of 2d Arrays?
  • A seating plan for a room that is organized by rows and columns.
  • A spreadsheet, where each row represents a record and each column represents a specific field.
  1. What is a modern day game that could be classified as a 2D array?
  • The Game of Life, as it takes place on a board with a grid on it, and each cell of the grid is either alive or dead.
  • 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 an array which is constructed with an x and y axis, and it can be indexed by their rows and columns.
  1. What is the definition of iteration in your own words.
  • Iteration involves repeating a process until a desired outcome is achieved. One way to accomplish this is through the use of a for loop, which can iterate over the elements of a list or array.
  1. Explain how the game relates to iteration.
  • To play the game, the player must use the arrow keys to navigate the square around the screen. This process involves iterating over the same action in order to reach a particular objective, such as scoring points or completing a level.
  1. What parts of the code use iteration?
  • The for loops near line 16. 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
  • To begin with, the word_list contains a collection of computer science-related words. Additionally, the scrambled_word variable represents the letters of a randomly chosen word, arranged in a haphazard sequence. Finally, the guesses variable tracks the number of attempts made by the user.
  1. Explain what list manipulation is happening in that part.
  • Using the random.sample() function, one can randomly select a subset of elements from a given list. In this particular case, the function is applied to the letters in the word string to generate a random assortment of letters, which are subsequently rearranged in a random order to create the scrambled_word list.

Iteration

  1. See Review Ticket

  2. Create a code segment with iteration:

exampleList = ["apple", "bananna", "orange", "grape"]

print("Available punch flavors:")
for example in exampleList:
    print(example)
Available punch flavors:
apple
bananna
orange
grape

2D Array

  1. The game code sets up a 3x3 grid where two players can take turns placing X's and O's. The goal is to get three of their symbols in a row before the opponent does. In case all the nine squares are occupied, and no player has a winning pattern, the game ends in a tie.

  2. Some examples of games that can be made using a 2D array are:

  • Chess: A 2D, square board with pieces moving along the x and y axis.
  • The Game of Life: Takes place on a rectangular board with a grid on it, and each cell of the grid is either alive or dead.
  • Connect 4: A traditional game that requires two players involves dropping colored discs into a 7x6 grid, taking turns one after the other. The objective is to get a sequence of four discs in a row, either horizontally, vertically, or diagonally, before the opponent does. The player who accomplishes this first wins the game.

Lists and Dictionaries

  1. Lists are collections of data that have a specific order. They can contain various types of data, such as strings, numbers, or objects, and are denoted by square brackets with commas separating each element. On the other hand, dictionaries are unordered collections of information. They are created using curly brackets and consist of key-value pairs, where a key uniquely identifies a value. Values can take on any data type, including strings, numbers, and objects.

  2. In general:

    • Lists tend to be faster at indexing.
    • Dictionaries are more robust at accessing keys and values.
    • Lists can store duplicate values, however dictionaries cannot.
from random import randint as rI

# Creating a list with my current group members
group = ["Samarth", "Theo", "Ava", "Alexa", "Ananya", "Haseeb"]

# Adding Kush and James to my group
group.append("Kush")
group.append("James")

# Removing Ananya from the group
group.remove("Ananya")

print(group)
# Printing the amount of members in the group.
print(len(group))

# Printing the name of a random group member
print("Call 1: " + group[rI(0,6)])
print("Call 2: " + group[rI(0,6)])
print("Call 3: " + group[rI(0,6)])
['Samarth', 'Theo', 'Ava', 'Alexa', 'Haseeb', 'Kush', 'James']
7
Call 1: Alexa
Call 2: Theo
Call 3: James