我当前的作业有一些问题。
(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;
}
}
答案 0 :(得分:1)
您必须调用startGame
函数:
startGame()
答案 1 :(得分:1)
您需要对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;
}
}
答案 2 :(得分:1)
您已经创建了一个名为startGame()的函数,但未在任何地方调用它,这就是为什么该函数未在该函数中运行的原因。
就像您在循环中调用playRound()的方式一样,您还必须调用startGame()使其运行。