몇 가지 문제가 있습니다.
재생 기능에서 computerChoice
변수를 사용하지 않고 compPlay()
의 함수 호출 결과 여야합니다. 현재는 var computerChoice = compPlay
이며 실제로는 computerChoice
을 함수가 아닌 함수에 할당합니다.
둘째 문, 당신은 함수 인, 다시 compPlay
값을 확인하는 경우 테스트에서, 나는 셋째 computerChoice
있어야한다고 생각합니다. compPlay
의 반환 값은 인덱스, 그것은 그것은 innerHTML을 함께 할 수 없다, 즉 잘 작동, 그것은
업데이트 된 코드
var humanTotal =0;
var compTotal=0;
document.getElementById("rock").onclick = setRock;
document.getElementById("paper").onclick = setPaper;
document.getElementById("scissors").onclick = setScissors;
function setRock(){
play("rock")
}
function setPaper(){
play("paper")
}
function setScissors(){
play("scissors")
}
function play(humanChoice) {
var computerChoice = compPlay(); //<-- Change Here
//And all the following if statements to check the computer choice
if (humanChoice == "rock"){
if (computerChoice =="rock"){
} else if (computerChoice =="scissors"){
humanTotal++;
} else if (computerChoice =="paper"){
compTotal++;
}
}
if (humanChoice == "paper"){
if (computerChoice =="paper"){
} else if (computerChoice =="rock"){
humanTotal++;
} else if (computerChoice =="scissors"){
compTotal++;
}
}
if (humanChoice == "scissors"){
if (computerChoice =="scissors"){
} else if (computerChoice =="paper"){
humanTotal++;
} else if (computerChoice =="rock"){
compTotal++;
}
}
document.getElementById("humanScore").innerHTML = humanTotal;
document.getElementById("computerScore").innerHTML = compTotal;
}
function compPlay(){
var compOptions = ['rock', 'paper', 'scissors'];
var randomChoice = Math.floor(Math.random()*compOptions.length);
return compOptions[randomChoice]; //<-- Change Here
}
아래 compOptions
배열에서 해당 인덱스 값이었다한다 다만 그 점수는 항상 0이었다. 그 이유는 "rock", "paper"또는 "scissors"를 테스트하는 if 문 중 하나도 "rock", "paper"또는 "scissors"와 컴퓨터 절대로 일치하지 않으므로 사실로 해결되지 않았기 때문입니다. 기능.