簡體   English   中英

條件語句未按預期運行:Javascript

[英]Conditional statement not functioning as expected: Javascript

我正在嘗試在用戶和計算機之間制作一個小的石頭、剪紙和剪刀程序。 除了 gameRound() 條件語句外,一切似乎都運行良好。 用戶輸入是什么並不重要。 它只是運行 (else) 語句。

 // a function that determines what the computer's choice is
    const getComputerChoice = () => {
        let compChoice = Math.random();
    
        if(compChoice > 0.5) {
            return "Rock";
        } else if(compChoice < 0.5) {
            return "scissors";
        } else if(compChoice == 0) {
            return "paper";
        }
    }
    
    // prompts the user to enter rock, paper or scissors
    let playerSelection = prompt();
    let computerSelection = getComputerChoice();
    
    // the logic that decides who wins and loses
    const gameRound = (playerSelection, computerSelection) => {
        if(playerSelection === "rock" && computerSelection === "rock" || playerSelection === "paper" && computerSelection === "paper" || playerSelection === "scissors" && computerSelection === "scissors") {
                return "It's a tie!!!";
        }  else if(playerSelection === "rock" && computerSelection === "paper")  {
                return "Computer wins!!!";
        }  else if(playerSelection === "rock" && computerSelection === "scissors")  {
                return "You win!!!";
        }  else if(playerSelection === "paper" && computerSelection === "scissors")  {
                return "Computer wins!!!";
        }  else if(playerSelection === "paper" && computerSelection === "rock")  {
                return "You win!!!";
        }  else if(playerSelection === "scissors" && computerSelection === "rock")  {
                return "Computer wins!!!";
        }  else if(playerSelection === "scissors" && computerSelection === "paper")  {
                return "You win!!!";
        }  else {
            return "Winner undecided";
        }
    }
    
    // the function that begins the game
    const game = () => {
        for(let i = 0; i < 5; i++) {
            return gameRound();
        }
    }
    
    console.log(game());

由於新聲明的參數playerSelectioncomputerSelectiongameRound條件語句無法按預期運行。 所以它必須是一個函數語句而不是內聯箭頭函數。

然后,Javascript代碼如下:

// a function that determines what the computer's choice is
const getComputerChoice = () => {
    let compChoice = Math.random();

    if(compChoice > 0.5) {
        return "Rock";
    } else if(compChoice < 0.5) {
        return "scissors";
    } else if(compChoice == 0) {
        return "paper";
    }
}

// the logic that decides who wins and loses
function gameRound(playerSelection, computerSelection) {
    if(playerSelection === "rock" && computerSelection === "rock" || playerSelection === "paper" && computerSelection === "paper" || playerSelection === "scissors" && computerSelection === "scissors") {
            return "It's a tie!!!";
    }  else if(playerSelection === "rock" && computerSelection === "paper")  {
            return "Computer wins!!!";
    }  else if(playerSelection === "rock" && computerSelection === "scissors")  {
            return "You win!!!";
    }  else if(playerSelection === "paper" && computerSelection === "scissors")  {
            return "Computer wins!!!";
    }  else if(playerSelection === "paper" && computerSelection === "rock")  {
            return "You win!!!";
    }  else if(playerSelection === "scissors" && computerSelection === "rock")  {
            return "Computer wins!!!";
    }  else if(playerSelection === "scissors" && computerSelection === "paper")  {
            return "You win!!!";
    }  else {
        return "Winner undecided";
    }
}

// prompts the user to enter rock, paper or scissors
let playerSelection = prompt();
let computerSelection = getComputerChoice();

for (let i = 0; i < 5; i++) {
    console.log(gameRound(playerSelection, computerSelection));
}

或者如果你的意思是玩 5 輪剪刀石頭布,那么playerSelectioncomputerSelection變量的分配應該在for循環內,如下所示:

// a function that determines what the computer's choice is
const getComputerChoice = () => {
    let compChoice = Math.random();

    if(compChoice > 0.5) {
        return "Rock";
    } else if(compChoice < 0.5) {
        return "scissors";
    } else if(compChoice == 0) {
        return "paper";
    }
}

// the logic that decides who wins and loses
function gameRound(playerSelection, computerSelection) {
    if(playerSelection === "rock" && computerSelection === "rock" || playerSelection === "paper" && computerSelection === "paper" || playerSelection === "scissors" && computerSelection === "scissors") {
            return "It's a tie!!!";
    }  else if(playerSelection === "rock" && computerSelection === "paper")  {
            return "Computer wins!!!";
    }  else if(playerSelection === "rock" && computerSelection === "scissors")  {
            return "You win!!!";
    }  else if(playerSelection === "paper" && computerSelection === "scissors")  {
            return "Computer wins!!!";
    }  else if(playerSelection === "paper" && computerSelection === "rock")  {
            return "You win!!!";
    }  else if(playerSelection === "scissors" && computerSelection === "rock")  {
            return "Computer wins!!!";
    }  else if(playerSelection === "scissors" && computerSelection === "paper")  {
            return "You win!!!";
    }  else {
        return "Winner undecided";
    }
}

for (let i = 0; i < 5; i++) {
    // prompts the user to enter rock, paper or scissors
    let playerSelection = prompt();
    let computerSelection = getComputerChoice();
    console.log(gameRound(playerSelection, computerSelection));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM