我做了一個石頭剪刀布程式(下面的代碼),它記錄用戶輸入、計算機選擇,然后比較得到結果。比較部分由于某種原因不起作用,它總是記錄“這是平局”,有人可以幫忙嗎?
編碼:
let playerSelection = choice();
function choice(){
let input = prompt("pick either rock,paper or scissors");
console.log(input.toLowerCase());
}
let computerChoice = computerPlay();
function computerPlay(){
let picks =["rock","paper","scissors"];
let pick = picks[Math.floor(Math.random(picks)*picks.length)];
console.log (pick);
}
function compare(playerSelection, computerChoice){
if(playerSelection === computerChoice){
console.log("It's a tie!")
}
else if((playerSelection == "rock" && computerChoice == "scissors")||
(playerSelection == "paper" && computerChoice == "rock")||
(playerSelection == "scissors" && computerChoice == "paper")){
console.log("you win! computer lose.");
}
else{
console.log("computer win! you lose.");
}
}
compare();
}
function game(){
console.log(playRound());
}
game();```
uj5u.com熱心網友回復:
呼叫函式時,應將playerSelection和作為引數傳遞computerChoice給compare函式:
compare(playerSelection, computerChoice);
此外,您應該從choice()andcomputerPlay()函式回傳值,以便將值分配給播放器和計算機。電腦播放示例:
function computerPlay(){
let picks =["rock","paper","scissors"];
let pick = picks[Math.floor(Math.random(picks)*picks.length)];
return pick;
}
這是一個完整的片段:
let playerSelection = choice();
function choice(){
let input = prompt("pick either rock,paper or scissors");
return input;
}
let computerChoice = computerPlay();
function computerPlay(){
let picks =["rock","paper","scissors"];
let pick = picks[Math.floor(Math.random(picks)*picks.length)];
return pick;
}
function compare(playerSelection, computerChoice){
if(playerSelection === computerChoice){
console.log("It's a tie!")
}
else if((playerSelection == "rock" && computerChoice == "scissors")||
(playerSelection == "paper" && computerChoice == "rock")||
(playerSelection == "scissors" && computerChoice == "paper")){
console.log("you win! computer lose.");
}
else{
console.log("computer win! you lose. ");
}
}
compare(playerSelection, computerChoice);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/471326.html
標籤:javascript
