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
- Some examples of 2D Arrays could include seating arrangements. Additionally, a chess board or a Tic Tac Toe or checkers.
- 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 one which is Tic Tac Toe.
Some examples of 2D Arrays could include seating arrangements. Additionally, a chess board or a Tic Tac Toe or checkers. A modern day game that could be classified as a 2D array is one which is Tic Tac Toe.
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)
A 2D array is an array which has 2 arrays and to get an element, you have to list two indices.
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()
- Iteration is when a certain set of steps are repeated until a certain condition is met.
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
- The game includes iteration because it shows repetition of steps. The program runs until the user input values are met.
- What parts of the code use iteration
- The parts of the code which include iteration are the for loops. This allows for the steps to be repeated until there is the condition of looper which is set.
The parts of the code which include iteration are the for loops. This allows for the steps to be repeated until there is the condition of looper which is met.
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
How I used List to make a game
- Explain which parts of the code use lists
- The part of the game which uses a list is the word_list, for storing the words which will be used in the game. Every variable which uses word_list uses the list. So, variables like word and scrambled_word use the word_list, which utilizes a list.
- Explain what list manipulation is happening in that part
- Random words are selected in the game. So, there is manipulation of the list by selecting one of the indices in the list.
- The part of the game which uses a list is the word_list, for storing the words which will be used in the game. Every variable which uses word_list uses the list. So, variables like word and scrambled_word use the word_list, which utilizes a list.
- Random words are selected in the game. So, there is manipulation of the list by selecting one of the indices in the 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!")
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
Hacks Work
Questions from lessons
- What are some examples of 2d Arrays
- Some examples of 2D Arrays could include seating arrangements. Additionally, a chess board or a Tic Tac Toe or checkers.
- 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 one which is Tic Tac Toe.
- Describe a 2D array in your own words
- A 2D array is an array which has 2 arrays and to get an element, you have to list two indices.
- What is the defenition of iteration in your own words
- Iteration is when a certain set of steps are repeated until a certain condition is met.
- Explain how the game relates to itertation
- The game includes iteration because it shows repetition of steps. The program runs until the user input values are met.
- What parts of the code use iteration
- The parts of the code which include iteration are the for loops. This allows for the steps to be repeated until there is the condition of looper which is set.
- Explain which parts of the code use lists
- The part of the game which uses a list is the word_list, for storing the words which will be used in the game. Every variable which uses word_list uses the list. So, variables like word and scrambled_word use the word_list, which utilizes a list.
- Explain what list manipulation is happening in that part
- Random words are selected in the game. So, there is manipulation of the list by selecting one of the indices in the list.
Iteration
Here is my work from reaching level 5 of the game and creating some python code
from PIL import Image
lvl5 = Image.open("../images/eoylevel5.png")
display(lvl5)
word = input("Type a word")
word = list(word)
count = 0
# Iteration
for i in word:
print("Index "+ str(count) + ": " + i)
count += 1
2D Array
- Explain how the Tic Tac Toe game works
- The game of Tic Tac Toe works by creating a 2D array with 3 lists in one list. Then, the user selects the position where they would like to place their mark. There need to be 2 numbers input, to choose the row and the column, since there are rows and columns and select which index of the outer list and then the index of the inner list. Then, the program checks if there is a value at the point and will continue to run if there isn't. Finally, after multiple turns have been run, the program checks if there is a row or diagonal completely filled out to see if there is a winner. If not, there is a tie.
- Games which can be made from arrays
- Games which can be made from arrays include Chess, Checkers, and Battleship. You could probably also create a Snake game or pretty much any flat, 2D game.
Lists and Dictionaries
Lists and dictionaries are both ways to store numerous values. Lists store values based on indices, while dictionaries store key-value pairs. This means that dictionaries store 2 values for every one of a list. So, a dictionary will end up taking more space for a list with the same number of indices as key-pairs. Dictionaries will probably have different types of values, like strings, integers, or floats. A list will probably hold values of a uniform type. These are both powerful things which can manage complexity for programmers.
langs = ["Python", "C", "C++", "Java", "Javascript"]
s_langs = sorted(langs)
print(s_langs)
teams = {
"Kansas City": "Chiefs",
"Denver": "Broncos",
"Las Vegas": "Raiders",
}
print(teams)
teams["Los Angeles"] = "Chargers"
print(teams)