#javascript #for-loop #if-statement
#JavaScript #for-цикл #if-оператор
Вопрос:
Я прошу прощения за то, что задал еще один вопрос о Rock Paper scissors. Я впервые учусь программировать, и я бы предпочел понять, почему поток моего кода не работает, а затем скопировать и вставить правильный ответ.
Я вижу это так: я вызываю game(); который затем вызывает playerSelection(), computerPlay() и, наконец, playRound() . Затем эти переменные помещаются в playRound(), который определяет базу вывода для оператора if / else. Затем Game() повторяется еще четыре раза, пока не завершится, и окончательные итоги записываются в консоль.
До сих пор каждый раз, когда я запускаю игру, она всегда заканчивается пятью ничьими и счетом 0 как для игрока, так и для компьютера. Я некоторое время возился с этим, и кажется, что каждая мелочь, которую я делаю, «ломает» программу. Любая информация ОЧЕНЬ ценится!
let playerChoice;
let computerChoice;
let i = 0;
function game(){
for (i; i < 5; i ) {
function playerSelection() {
let playerChoice = prompt("Rock paper scissors?");
return playerChoice;
}
playerSelection();
function computerPlay () {
let computerChoice = ["rock", "paper","scissors"];
return computerChoice[Math.floor(Math.random()*computerChoice.length)];
}
computerPlay();
playRound();
function playRound(playerChoice, computerChoice) {
let playerScore = 0;
let compScore = 0;
if (playerChoice == computerChoice) {
console.log("Draw!")
} else if (playerChoice == "rock" amp;amp; computerChoice == "scissors"){
console.log("You Win!")
playerScore ;
} else if (playerChoice == "paper" amp;amp; computerChoice == "rock"){
console.log("You Win!")
playerScore ;
} else if (playerChoice == "scissors" amp;amp; computerChoice == "paper"){
console.log("You Win!")
playerScore ;
} else {
console.log("You Lose!")
compScore ;
}
console.log(playerScore);
console.log(compScore);
return;
}
}
}
game();
if (playerScore > compScore) {
console.log("Congratulations! You won the game!")
} else {
console.log("You lost the game!")
}
Комментарии:
1. Вероятно, вам следует перефразировать свой вопрос, чтобы он был менее открытым, и вместо этого описать, какое поведение вы видите по сравнению с тем, что вы ожидаете. Такого рода вопросы, скорее всего, будут иметь повторное значение для потомков, поскольку кто-то может найти его в Google, и это может им помочь. Это приведет к меньшему количеству отрицательных голосов и большему количеству ответов.
Ответ №1:
Причина, по которой вы всегда видите Draw!это потому, что вы не используете возвращаемое значение двух функций playerSelection()
и computerPlay()
переопределяете значение playerChoice
and computerChoice
.