首页 > 解决方案 > 我的石头、纸、剪刀游戏的 JavaScript 代码不工作

问题描述

我正在学习 Javascript。我正在尝试用 Js 制作一个石头剪刀布游戏。

let playerScore = 0;
let computerScore = 0;
let playerSelection = prompt("Choose Rock, Paper, Scissor");
let choice = ["Rock", "Paper", "Scissor"];

function computerPlay(choice) {
    let computerChoice = choice[Math.floor(Math.random() * choice.length)];
    return computerChoice; 
}

let computerSelection = computerPlay(choice);

function playRound(playerSelection, computerSelection) {
    playerSelection.toLowerCase();
    
    if (playerSelection === computerSelection) {
        console.log (`It is a tie. Player ${playerScore} vs Computer ${computerScore}`);
    }
    
    else if (playerSelection === "rock" && computerSelection === "paper") {
        computerScore++;
        console.log (`Computer won! Player ${playerScore} vs Computer ${computerScore}`);
    }
    
    else if (playerSelection === "paper" && computerSelection === "scissor") {
        computerScore++;
        console.log (`Computer won! Player ${playerScore} vs Computer ${computerScore}`);
    }
    
    else if (playerSelection === "scissor" && computerSelection === "rock") {
        computerScore++;
        console.log (`Computer won! Player ${playerScore} vs Computer ${computerScore}`);
    }
    
    else {
        playerScore++;
        console.log (`You won! Player ${playerScore} vs Computer ${computerScore}`);
    }
}

playRound(playerSelection, computerSelection);

但是我的代码没有像我预期的那样工作。无论我在提示中给出什么选择(石头、纸、剪刀),它每次只会给我相同的结果,即只有其他条件语句有效。

标签: javascript

解决方案


做完 playerSelection.toLowerCase(); 将其存储到相同的变量中。

toLowerCase 不会更新字符串中的任何内联内容,它只是返回值,因此您将在某处存储返回值

playerSelection = playerSelection.toLowerCase();

还将选择数组更改为小写

let choice = ["rock", "paper", "scissor"];

推荐阅读