Iteration Homework
An intro to data abstraction
Homework Assignment: for Loop Challenge
Task: Create a program that does the following:
Initialize an array with the names of five of your favorite movies. Use a for loop to iterate through the array and print each movie name to the console. After printing all movie names, print a message indicating how many movies you listed.
%%js
let favoriteMovies = ["Inception", "The Matrix", "Interstellar", "The Dark Knight", "Pulp Fiction"];
for (let movie of favoriteMovies) {
console.log(movie);
}
console.log(`You have listed ${favoriteMovies.length} movies.`);
Homework
Create a 3 by 3, 2D list that represents a tictactoe board. Use “X” for X, “O” for O, and None for empty tiles.
Ex. board = [[“X”,”None”,”O”],
[“X”,”O”,”None”],
[“O”,”None”,”X”]]
Iterate over the board and identify whether it is player X’s or player O’s turn.
Hint: count the number of moves(non-None). (X goes first)
Optional: use console.error() to report an error if the board is illegal (ex. 7 “X”s and 2 “O”s)
%%js
let board = [
["X", null, "O"],
["X", "O", null],
["O", null, "X"]
];
let xCount = 0;
let oCount = 0;
for (let row of board) {
for (let cell of row) {
if (cell === "X") {
xCount++;
} else if (cell === "O") {
oCount++;
}
}
}
if (xCount + oCount > 9) {
console.error("Illegal board: too many moves");
} else if (xCount > oCount + 1 || oCount > xCount) {
console.error("Illegal board: unbalanced moves");
} else {
let currentPlayer = xCount > oCount ? "O" : "X";
console.log(`It is player ${currentPlayer}'s turn.`);
}
H.W application of While Loops.
Create the Outer Loop:
Use a while loop that runs while outerFactor is less than or equal to 10. Initialize the Inner Loop Variable:
Inside the outer loop, create another variable called innerFactor and set it to 1. Create the Inner Loop:
Inside the outer loop, use another while loop that runs while innerFactor is less than or equal to 10. Calculate the Product:
Inside the inner loop, calculate the product of outerFactor and innerFactor. Print the Product:
Print the product using console.log(), formatting the output neatly. Increment the Inner Loop Variable:
After printing the product, increment innerFactor by 1. Move to the Next Line:
After the inner loop finishes, print a new line to separate rows. Increment the Outer Loop Variable:
Increment outerFactor by 1 to move to the next row in the table.
%%js
// I love async!!
(async function() {
let outerFactor = 1;
while (outerFactor <= 10) {
let innerFactor = 1;
while (innerFactor <= 10) {
let product = outerFactor * innerFactor;
console.log(`${outerFactor} * ${innerFactor} = ${product}`);
innerFactor++;
}
console.log(""); // Print a new line to separate rows
outerFactor++;
// Add a delay between each row for better visualization
await new Promise(resolve => setTimeout(resolve, 500));
// Hell yeah
}
// Print a separator line for better readability
console.log("----------");
})();
// Never doing async again 3: