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: