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 ieration, 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
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()
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 shows how looping works and how you can reduce the complexity of some code by repeating the same code by using a loop
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
- Initially, the variable named "word_list" comprises a collection of terms related to computer science. Subsequently, the variable labeled "scrambled_word" contains a list of letters obtained by randomly selecting a word and shuffling its letters. Finally, the "guesses" variable maintains a record of the number of attempts made by the user.
- Explain what list manipulation is happening in that part
- By utilizing the random.sample() function, one can randomly extract a subset of items from a list. In this scenario, this function is used to randomly choose a set of letters from a word string, which are then organized in a randomized sequence in 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!")
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
- Uses the 2D array and you can put in the boxes and then to win it uses if statements
- 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
- A maze
- Drawing game
- pacman game
List and Dictionaries 0.2 (can get up to 0.23)
- Explain the differences between Lists and Dictionaries
- Lists have no key only has terms and to call to them you must use index
- dictionaries have unique keys
- Make a code block that manipulates either a list or a dictionary
Questions
What are some examples of 2D Arrays?
Examples of 2D Arrays consist of 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 contemporary puzzle game that falls into the category of a 2D array. In the game, players must stack falling blocks into complete rows, and the game board is represented as a 2D array. Each row on the board represents a row of the game board, and each column denotes a column of the board.
Describe a 2D array in your own words
A 2D array is an array that possesses two dimensions or axes. It can be viewed as a rectangular grid of elements, where each element in the array is uniquely recognized by its corresponding row and column indexes.
What is the definition of iteration in your own words?
Iteration refers to the repetitive process of performing a procedure or operation until the desired result is attained. For instance, a for loop can use iteration to iterate over objects in a list or array.
Explain how the game relates to iteration?
The game operates by repeatedly pressing the arrow keys to shift the square around the screen. This process is a perfect example of iteration, as the player continually performs the same action until they achieve their goal.
What parts of the code use iteration?
The for loops in the movements array are the parts of the code that utilize iteration. These loops iterate over the UPinput, DOWNinput, LEFTinput, and RIGHTinput variables to form an array of movements.
Explain which parts of the code use lists?
The word_list variable, which comprises a list of computer science words, the scrambled_word variable, which is a list of letters in the randomly selected word, in a random order, and the guesses variable, which keeps track of the number of guesses the user has made, are all examples of lists utilized in the code.
Explain what list manipulation is happening in that part?
In the code, the random.sample() function is used to extract a random sample of elements from a list. In this instance, it is utilized to select a random sample of letters from the word string, which are then organized in a randomized sequence in the scrambled_word list.
for i in range(10):
print(i*i)
dic = {"name" : "alex", "age": "16"}
print(dic)
dic["gender"] = "man"
print(dic)
print(dic["name"])
my_list = ["frog", "Cat", "dog"]
# Add an element to the list
my_list.append("orange")
# Remove an element from the list
my_list.remove("Cat")
# Sort the list
my_list.sort()
# Get the length of the list
print(len(my_list))
# Print the list
print(my_list)