Есть некоторые проблемы с моей текущей домашней работой.
Код внутри функции while (цикла цикла) startGame () не будет запускаться при записи внутри функции. Если я удаляю объявление функции, оно работает как задумано. Что я делаю неправильно?
let playerScore = 0; let computerScore = 0; let playerSelection; let computerSelection; let i = 0; function startGame() { while (i < 5) { // This part wont run when used inside function (){} playRound(); i += 1; } } /* for (i = 0; i < 6; i++) { playRound(); } */ /* NOTE TO SELF: Can't do call to function before declaring variables. Since they then would be undefined during runtime. */ function playRound() { playerSelection = prompt(); computerSelection = computerPlay(); if (playerSelection.trim() === computerSelection.trim()) { console.log("Round is Equal") } else if (playerSelection === "Scissor" && computerSelection === "Paper") { playerScore += 1; console.log("Player score is:" + " " + playerScore + " " + "Player wins round"); } else if (playerSelection === "Paper" && computerSelection === "Scissor") { computerScore += 1; console.log("Computer score is:" + " " + computerScore + " " + "Computer win round"); } else if (playerSelection === "Rock" && computerSelection === "Scissor") { playerScore += 1; console.log("Player score is:" + " " + playerScore + " " + "Player wins round"); } else if (playerSelection === "Scissor" && computerSelection === "Rock") { computerScore += 1; console.log("Computer score is:" + " " + computerScore + " " + "Computer win round"); } else if (playerSelection === "Paper" && computerSelection === "Rock") { playerScore += 1; console.log("Player score is:" + " " + playerScore + " " + "Player wins round"); } else if (playerSelection === "Rock" && computerSelection === "Paper") { computerScore += 1; console.log("Computer score is:" + " " + computerScore + " " + "Computer win round"); } } function computerPlay() { let randomNumber = Math.floor(Math.random() * 3) + 1; switch (randomNumber) { case 1: randomNumber = "Rock"; return randomNumber; case 2: randomNumber = "Scissor"; return randomNumber; case 3: randomNumber = "Paper" return randomNumber; } }
Вам необходимо сделать начальный вызов для startGame() функций, которые не запускаются сами по себе.
startGame()
let playerScore = 0; let computerScore = 0; let playerSelection; let computerSelection; let i = 0; function startGame() { while (i < 5) { // This part wont run when used inside function (){} playRound(); i += 1; } } startGame(); /* for (i = 0; i < 6; i++) { playRound(); } */ /* NOTE TO SELF: Can't do call to function before declaring variables. Since they then would be undefined during runtime. */ function playRound() { playerSelection = prompt(); computerSelection = computerPlay(); if (playerSelection.trim() === computerSelection.trim()) { console.log("Round is Equal") } else if (playerSelection === "Scissor" && computerSelection === "Paper") { playerScore += 1; console.log("Player score is:" + " " + playerScore + " " + "Player wins round"); } else if (playerSelection === "Paper" && computerSelection === "Scissor") { computerScore += 1; console.log("Computer score is:" + " " + computerScore + " " + "Computer win round"); } else if (playerSelection === "Rock" && computerSelection === "Scissor") { playerScore += 1; console.log("Player score is:" + " " + playerScore + " " + "Player wins round"); } else if (playerSelection === "Scissor" && computerSelection === "Rock") { computerScore += 1; console.log("Computer score is:" + " " + computerScore + " " + "Computer win round"); } else if (playerSelection === "Paper" && computerSelection === "Rock") { playerScore += 1; console.log("Player score is:" + " " + playerScore + " " + "Player wins round"); } else if (playerSelection === "Rock" && computerSelection === "Paper") { computerScore += 1; console.log("Computer score is:" + " " + computerScore + " " + "Computer win round"); } } function computerPlay() { let randomNumber = Math.floor(Math.random() * 3) + 1; switch (randomNumber) { case 1: randomNumber = "Rock"; return randomNumber; case 2: randomNumber = "Scissor"; return randomNumber; case 3: randomNumber = "Paper" return randomNumber; } }
Вы создали функцию startGame (), но вы ее нигде не вызываете, поэтому она не работает внутри функции.
Точно так же, как ваш метод playRound () внутри вашего цикла, вы также должны вызывать startGame () для запуска кода в нем.
Вы должны вызвать startGame функцию:
startGame