为什么我的 "Rock Paper Scissors" 程序无法运行并使我的页面不断崩溃?
Why does my "Rock Paper Scissors" program not work and keep crashing my page?
我的 "Rock Paper Scissors" 作业也要求我使用非常具体的直径。它根本不起作用。页面甚至不会加载,而不是出现任何已记录的控制台。
我最初将控制台中的所有字符串作为会在页面上弹出的警报,但这不起作用所以我只是将它切换到控制台希望它会在我使用节点时弹出,但是也没有用。我四处移动播放器和计算机胜利,进出功能,看看是否会改变任何东西,但它没有。
var hands = ['Rock', 'Paper', 'Scissors'];
function getHand(){
return hands[parseInt(Math.random()*hands.length)%3];
}
var player1 = "Mike";
console.log("Hello " + player1);
var player2;
console.log("Player 2 is the computer!");
//var playWins = 0;
//var compWins = 0;
function playRound(){
if (hand == computer){
console.log("You guys tied!");
} else if (hand == "Scissors" && computer == "Rock"){
console.log(player1 + " has lost! Sadddd...");
compWins++;
} else if (hand == "Paper" && computer == "Rock"){
console.log(player1 + " has wonnnn!!! Yay! I guess...");
playWins++
} else if (hand == "Rock" && computer == "Scissors"){
console.log(player1 + " has wonnnn!!! Yay! I guess...");
playWins++;
} else if (hand == "Paper" && computer == "Scissors"){
console.log(player1 + + " has lost! Sadddd...");
compWins++;
} else if (hand == "Rock" && computer == "Paper"){
console.log(player1 + + " has lost! Sadddd...");
compWins++;
} else if (hand == "Paper" && computer == "Paper"){
console.log(player1 + " has wonnnn!!! Yay! I guess...");
playWins++;
} else {console.log("There seems to be a problem.");}
}
hand = [];
computer = [];
while (hand <= 3 || computer <= 3){
for (i = 0; i >=5; i++ ){
hand.push(getHand());
computer.push(getHand());
playRound();
}
}
if(playWins>compWins){
console.log(player1 + " Wins!");
} else {
console.log("Computer Wins!");
}
我希望它能告诉我每场比赛谁赢了,然后至少在 5 场比赛后谁赢了。我看不到我的错误消息,因为页面甚至无法完全加载。
你有一个无限循环。一些错误正在使这种情况发生。首先,这些是数组:
while (hand <= 3 || computer <= 3)
所以我猜你想检查他们的长度?:
while (hand.length <= 3 || computer.length <= 3)
那你这里也有逻辑错误:
for (i = 0; i >=5; i++ ){
由于i
以0
开头,所以马上不是>= 5
,所以永远不会进入for
循环while
循环无限期地重复。你可能想要 <=
:
for (i = 0; i <= 5; i++ ){
您还需要取消对这些变量的注释,以便定义变量,因为您稍后会用到这些变量:
var playWins = 0;
var compWins = 0;
我的 "Rock Paper Scissors" 作业也要求我使用非常具体的直径。它根本不起作用。页面甚至不会加载,而不是出现任何已记录的控制台。
我最初将控制台中的所有字符串作为会在页面上弹出的警报,但这不起作用所以我只是将它切换到控制台希望它会在我使用节点时弹出,但是也没有用。我四处移动播放器和计算机胜利,进出功能,看看是否会改变任何东西,但它没有。
var hands = ['Rock', 'Paper', 'Scissors'];
function getHand(){
return hands[parseInt(Math.random()*hands.length)%3];
}
var player1 = "Mike";
console.log("Hello " + player1);
var player2;
console.log("Player 2 is the computer!");
//var playWins = 0;
//var compWins = 0;
function playRound(){
if (hand == computer){
console.log("You guys tied!");
} else if (hand == "Scissors" && computer == "Rock"){
console.log(player1 + " has lost! Sadddd...");
compWins++;
} else if (hand == "Paper" && computer == "Rock"){
console.log(player1 + " has wonnnn!!! Yay! I guess...");
playWins++
} else if (hand == "Rock" && computer == "Scissors"){
console.log(player1 + " has wonnnn!!! Yay! I guess...");
playWins++;
} else if (hand == "Paper" && computer == "Scissors"){
console.log(player1 + + " has lost! Sadddd...");
compWins++;
} else if (hand == "Rock" && computer == "Paper"){
console.log(player1 + + " has lost! Sadddd...");
compWins++;
} else if (hand == "Paper" && computer == "Paper"){
console.log(player1 + " has wonnnn!!! Yay! I guess...");
playWins++;
} else {console.log("There seems to be a problem.");}
}
hand = [];
computer = [];
while (hand <= 3 || computer <= 3){
for (i = 0; i >=5; i++ ){
hand.push(getHand());
computer.push(getHand());
playRound();
}
}
if(playWins>compWins){
console.log(player1 + " Wins!");
} else {
console.log("Computer Wins!");
}
我希望它能告诉我每场比赛谁赢了,然后至少在 5 场比赛后谁赢了。我看不到我的错误消息,因为页面甚至无法完全加载。
你有一个无限循环。一些错误正在使这种情况发生。首先,这些是数组:
while (hand <= 3 || computer <= 3)
所以我猜你想检查他们的长度?:
while (hand.length <= 3 || computer.length <= 3)
那你这里也有逻辑错误:
for (i = 0; i >=5; i++ ){
由于i
以0
开头,所以马上不是>= 5
,所以永远不会进入for
循环while
循环无限期地重复。你可能想要 <=
:
for (i = 0; i <= 5; i++ ){
您还需要取消对这些变量的注释,以便定义变量,因为您稍后会用到这些变量:
var playWins = 0;
var compWins = 0;