Javascript 为什么我的石头剪刀游戏不起作用?它不断返回“你选择了摇滚,你赢了”,我该如何解决这个问题?
我已经在这上面呆了很长时间了,基本上这是一个人对电脑,我输入说摇滚,它给我你选择的摇滚你赢了,即使我选择了其他的,它仍然返回,有人能帮我找出为什么它一直这样做吗Javascript 为什么我的石头剪刀游戏不起作用?它不断返回“你选择了摇滚,你赢了”,我该如何解决这个问题?,javascript,Javascript,我已经在这上面呆了很长时间了,基本上这是一个人对电脑,我输入说摇滚,它给我你选择的摇滚你赢了,即使我选择了其他的,它仍然返回,有人能帮我找出为什么它一直这样做吗 let person = prompt ("Rock, Paper, Scissors"); // Computer makes a choice function computerPlay () { let compchoice = ['Rock', 'Paper', 'Scissors']; return compchoic
let person = prompt ("Rock, Paper, Scissors");
// Computer makes a choice
function computerPlay () {
let compchoice = ['Rock', 'Paper', 'Scissors'];
return compchoice[Math.floor(Math.random() *
compchoice.length)];
}
//Player vs Computer
function playRound (playerSelection, computerSelection) {
if (playerSelection === 'Rock' || computerSelection ===
'Scissors') {
return 'You chose ' + playerSelection + ',' + ' You win!';
} else if (playerSelection === 'Paper' || computerSelection ===
'Rock')
{
return 'You chose ' + playerSelection + ',' + ' You win!';
} else if (playerSelection === 'Scissors' || computerSelection ===
'Paper')
{
return 'You chose ' + playerSelection + ',' + ' You win!';
} else if (computerSelection === 'Rock' || playerSelection ===
'Scissors')
{
return 'Computer chose ' + computerSelection + ',' + 'Computer
wins!';
} else if (computerSelection === 'Paper' || playerSelection ===
'Rock')
{
return 'Computer chose ' + computerSelection + ',' + 'Computer
wins!';
} else if (computerSelection === 'Scissors' || playerSelection ===
'Paper')
{
return 'Computer chose ' + computerSelection + ',' + 'Computer
wins!';
} else if (computerSelection === playerSelection) {
return 'Its a draw!';
}else {
return 'Please chose Rock, Paper, or Scissors';
}
}
const playerSelection = 'rock';
const computerSelection = computerPlay();
console.log(playRound(playerSelection, computerSelection));
它应该只是玩一个普通的石头剪刀游戏,如果我选择了石头,电脑选择了纸,电脑应该会赢。现在我试着让它只玩一轮。您使用的是or语句。您需要使用和语句。以您的第一行为例:
if (playerSelection === 'Rock' || computerSelection === 'Scissors') {
return 'You chose ' + playerSelection + ',' + ' You win!';
}
它说:
if playerSelection equals Rock OR computerSelection equals Scissors return
所以如果playerSelection是摇滚乐,它会马上回来。您需要使用的是AND语句。试试这个:
let playerSelection = prompt("Rock, Paper, Scissors");
// Computer makes a choice
function computerPlay() {
let compchoice = ['Rock', 'Paper', 'Scissors'];
return compchoice[Math.floor(Math.random() * compchoice.length)];
}
//Player vs Computer
function playRound(playerSelection, computerSelection) {
if (playerSelection === 'Rock' && computerSelection === 'Scissors') {
return 'You chose ' + playerSelection + ',' + ' You win!';
} else if (playerSelection === 'Paper' && computerSelection === 'Rock') {
return 'You chose ' + playerSelection + ',' + ' You win!';
} else if (playerSelection === 'Scissors' && computerSelection === 'Paper') {
return 'You chose ' + playerSelection + ',' + ' You win!';
} else if (computerSelection === 'Rock' && playerSelection === 'Scissors') {
return 'Computer chose ' + computerSelection + ',' + 'Computer wins!';
} else if (computerSelection === 'Paper' && playerSelection === 'Rock') {
return 'Computer chose ' + computerSelection + ',' + 'Computer wins!';
} else if (computerSelection === 'Scissors' && playerSelection === 'Paper') {
return 'Computer chose ' + computerSelection + ',' + 'Computer wins!';
} else if (computerSelection === playerSelection) {
return 'Its a draw!';
} else {
return 'Please chose Rock, Paper, or Scissors';
}
}
//const playerSelection = 'Rock';
const computerSelection = computerPlay();
console.log(playRound(playerSelection, computerSelection));
最后一行第三行的玩家选择也有错误。playerSelection字符串应该像它正在比较的字符串一样大写在编写代码时,您可能会考虑使用一致的缩进——这将使阅读和调试变得更容易,不仅对于潜在的回答者,而且对您来说,当我们都能一目了然地看到{}块和嵌套级别时,而不是必须仔细地选择每一行来拾取逻辑路径。谢谢,下一个问题我会记住这一点。看下面的三行。您没有在任何地方使用输入值person。您正在使用一个playerSelection,其值为'rock'并带有小写字母!而是执行游戏。除此之外,整个代码似乎有缺陷,您似乎混淆了基本布尔运算符或| |和&&。我试图更改它,但它不会像以前那样出现,但现在它只是返回最后一条else语句/“请选择石头、布或剪刀”。有什么建议吗?嗯,你是复制/粘贴了我的代码还是仅仅做了我提到的更改?请记住,playerSelection中可能仍然存在输入错误。我以前使用过我的代码,但我只是将| |改为&。我复制了你的代码,现在它工作了。不知道以前出了什么问题。如果可以的话,除了将| |改为&&????之外,代码还有什么问题吗?最后第三行的“Rock”中有一个拼写错误,您没有将“R”大写。好的,谢谢。对不起,我注意到了一些事情。1.如果我输入随机的单词而不是石头、剪纸,它仍然会给我一个答案,这不是最后一个答案。2.当我运行它时,它会提示我选择一些东西,然后我输入纸张,它会说计算机选择的纸张公司获胜。其他人也是这样。怎么了?