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

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

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)

How I used 2D Arrays (game example)

- Describe a 2D array in your own words

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

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

How I used iteration (game example)

- What parts of the code use iteration

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

- Explain what list manipulation is happening in that part

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!")

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 Hacks

What are some examples of 2d Arrays

Some examples of 2d arrays are [Alexa, May 16th, girl], [Dylan, August 15th, boy], [Leslie, September 7th, girl] and [DNHS, 2009, #1], [WVHS, 2002, #2], [MC, 1974, #3]

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

A modern day game that could be classified as a 2D array is Chess.

Describe a 2D array in your own words

a 2D array is a list of lists with similar values

What is the defenition of iteration in your own words

Iteration is the process of simplifying/making code more efficient by allowing for loops and repeating steps

Explain how the game relates to itertation

The game uses iteration to move the robot to a certain position with only a few lines of instruction that repeat.

What parts of the code use iteration (game example)

The game utilizes iteration multiple times. Any level that involves a loop, uses iteration. Leves 2 through 5 have iteration.

In your backend code for the game, many for loops are used to have a condition for every possiblility of the user's action/movement. Explain which parts of the code use lists

The code defines the list "word_list" with all the possible words for the user to unscramble.

Explain what list manipulation is happening in that part

A random item (word) from the list is chosen, as long as it's length. This random word is assigned to the variable "word. It is then scrambled up and assigned to the variable "scrambled_word".

Iteration Hacks

Level 1

Level 1

Level 2

Level 2

Level 3

Level 3

Level 4

Level 4

Level 5

Level 1

singers = ["Trace Adkins", "Sammy Kershaw", "Taylor Swift", "Josh Turner", "Don Williams", "Blake Shelton", "Raelynn", "Dan and Shay", "George Strait"]
for singer in singers:
    if len(singer) < 10:
        print("singer's name is too short")
    else:
        print(singer + " is good to go!")
Trace Adkins is good to go!
Sammy Kershaw is good to go!
Taylor Swift is good to go!
Josh Turner is good to go!
Don Williams is good to go!
Blake Shelton is good to go!
singer's name is too short
Dan and Shay is good to go!
George Strait is good to go!

2D Array Hacks

Tic Tac Toe game works by defining the variable "board" with 3 different lists (which is a 2D array.) It then defines a funtion where it prints the board and a function that checks if there is a win or a tie. Finally, it defines the function "play_game" that has a while loop that contains conditionals. It takes the user's inut and calls the functions defined earlier. 3 examples of games that can be made from 2D arrays are snake, connect 4, and a maze.

Lists and Dictionaries Hacks

Lists and Dictionaries

haywire_album = {
    "title": "Haywire",
    "artist": "Josh Turner",
    "year": 2012,
    "genre": ["Country"],
    "tracks": {
        1: "Haywire",
        2: "Why Don't We Just Dance",
        3: "I Wouldn't Be A Man",
        4: "I'll Be There",
        5: "Friday Paycheck",
        6: "This Kind Of Love",
        7: "Loving You On My Mind",
        8: "The Answer",
        9: "Your Smile",
        10: "As Fast As I could",
        11: "Let's Find a Church",
        12: "All Over Me",
        13: "Eye Candy",
    }
}

# Printing the dictionary
print(haywire_album)
{'title': 'Haywire', 'artist': 'Josh Turner', 'year': 2012, 'genre': ['Country'], 'tracks': {1: 'Haywire', 2: "Why Don't We Just Dance", 3: "I Wouldn't Be A Man", 4: "I'll Be There", 5: 'Friday Paycheck', 6: 'This Kind Of Love', 7: 'Loving You On My Mind', 8: 'The Answer', 9: 'Your Smile', 10: 'As Fast As I could', 11: "Let's Find a Church", 12: 'All Over Me', 13: 'Eye Candy'}}
print(haywire_album.get('tracks')[4])

# double indexing
print(haywire_album['tracks'][4])
I'll Be There
I'll Be There
haywire_album["producer"] = set(['Josh Turner', 'Frank Rogers', 'Chris LeDoux'])

# Printing the dictionary
print(haywire_album)

# Printing the producer set
print(haywire_album["producer"])
{'title': 'Haywire', 'artist': 'Josh Turner', 'year': 2012, 'genre': ['Country'], 'tracks': {1: 'Haywire', 2: "Why Don't We Just Dance", 3: "I Wouldn't Be A Man", 4: "I'll Be There", 5: 'Friday Paycheck', 6: 'This Kind Of Love', 7: 'Loving You On My Mind', 8: 'The Answer', 9: 'Your Smile', 10: 'As Fast As I could', 11: "Let's Find a Church", 12: 'All Over Me', 13: 'Eye Candy'}, 'producer': {'Chris LeDoux', 'Josh Turner', 'Frank Rogers'}}
{'Chris LeDoux', 'Josh Turner', 'Frank Rogers'}
haywire_album["genre"].append("Country")
print(f"Title: {haywire_album['title']}")
print(f"Artist: {haywire_album['artist']}")
print('Producer(s):')
for prod in haywire_album['producer']:
    print(f"- {prod}")
print(f"Year: {haywire_album['year']}")
print("Genres:")
for genre in haywire_album['genre']:
    print(f"- {genre}")
print("Tracks:")
for track_number, track_title in haywire_album['tracks'].items():
    print(f"{track_number}. {track_title}")
Title: Haywire
Artist: Josh Turner
Producer(s):
- Chris LeDoux
- Josh Turner
- Frank Rogers
Year: 2012
Genres:
- Country
- Country
Tracks:
1. Haywire
2. Why Don't We Just Dance
3. I Wouldn't Be A Man
4. I'll Be There
5. Friday Paycheck
6. This Kind Of Love
7. Loving You On My Mind
8. The Answer
9. Your Smile
10. As Fast As I could
11. Let's Find a Church
12. All Over Me
13. Eye Candy