P4-M 4/24 Big Idea 3
Lesson about Big Idea 3
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
- Image Pixels: An image can be represented as a 2D array of pixels, where each pixel's color values are stored as individual elements in the array.
- What is a modern day game that could be classified as a 2D array
- Sudoku
- Crossword
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)
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 is a process of repeating a set of instructions or a procedure multiple times to achieve a desired outcome or to solve a problem. It involves the use of a loop, where a block of code is executed repeatedly until a certain condition is met or until a specified number of iterations have been completed.
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
- This game relates to iteration because in this game the steps are repeated until a condition is met which is getting the robot to the final spot
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);
}
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
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
num_terms = int(input("How many terms of the Fibonacci sequence would you like to generate? "))
# Initialize the sequence with the first two terms
fib_sequence = [0, 1]
# Generate the rest of the sequence using iteration
while len(fib_sequence) < num_terms:
next_num = fib_sequence[-1] + fib_sequence[-2]
fib_sequence.append(next_num)
# Print the sequence
print("The Fibonacci sequence up to the", num_terms, "term(s) is:")
for num in fib_sequence:
print(num)
2D array 0.2 (can get up to 0.23)
Explain how the tic tac toe game works
Each player takes turns placing their symbol (X or O) on the grid until one player gets three of their symbols in a row, either horizontally, vertically, or diagonally. If all the spaces on the grid are filled and no player has won, the game ends in a tie.
Give 3 Examples of games that can be made from 2D arrays
sudoku
- connect 4
- cross word
List and Dictionaries 0.2 (can get up to 0.23)
Explain the differences between Lists and Dictionaries
Lists are ordered collections of items, where each item is identified by an index starting from 0.
Dictionaries, on the other hand, are unordered collections of key-value pairs, where each value is associated with a unique key.
Make a code block that manipulates either a list or a dictionary
this code uses the split function to create a dictionary that counts the number of words in a sentence
sentence = input("Please input a sentence")
# Split the sentence into words
words = sentence.split()
# Define an empty dictionary to store the word frequencies
word_freq = {}
# Loop over each word in the sentence and update the word frequency
for word in words:
if word in word_freq:
word_freq[word] += 1
else:
word_freq[word] = 1
# Print the word frequencies
print("Word frequencies:")
for word, freq in word_freq.items():
print(word, ":", freq)