Я правильно вложил эти операторы if / else if в JavaScript? - PullRequest
0 голосов
/ 25 февраля 2019

Я работаю над игрой «камень, бумага, ножницы» на JavaScript, где я должен сообщить пользователю, был ли галстук и был ли неправильный выбор пользователя, кроме камня, бумаги и ножниц, поэтому я подумалчто вложение if / else будет уместным.Я довольно новичок в JS и не могу сказать, является ли причина, по которой мой код не работает, из-за неправильного вложения или что-то еще.Все, что я получаю, это ошибка синтаксического анализа неожиданного токена.

var UserChoice = window.prompt("Select rock, paper, or scissors");

var computChoice = Math.random();
if (computChoice <= 0.33) {
    computChoice = "scissors";
} else if (computChoice <= 0.66 && computChoice > 0.33) {
    computChoice = "paper";
} else {
    computChoice = "rock";
}

if (UserChoice === "paper") {
    if (UserChoice === "paper" && computChoice === "rock") {
        window.alert("You chose paper and the computer chose rock! You win! Paper covers rock");  
    } else if (UserChoice === "paper" && computChoice === "paper") {
        window.alert("It's a tie!");
    } else if (UserChoice === "paper" && computChoice === "scissors") {
        window.alert("You lose! You chose paper and computer chose scissors. Scissors cut paper!");
    } 
} else if (UserChoice === "scissors") {
    if (UserChoice === "scissors" && computChoice === "paper") {
        window.alert("You chose scissors and the computer chose paper! You win! Scissors cut paper.");
    } else if (UserChoice === "scissors" && computChoice === "scissors") {
        window.alert("It's a tie! You chose scissors and the computer chose scissors!");
    } else if (UserChoice === "scissors" && computChoice === "rock") {
        window.alert("You lose! You chose scissors and computer chose rock. Rock smashes scissors!");
    }
} else if (UserChoice === "rock") {
    if (UserChoice === "rock" && computChoice === "scissors") {
        window.alert("You chose rock and the computer chose scissors! You win! Rock smashes scissors."); 
    } else if (UserChoice === "rock" && computChoice === "rock") {
        window.alert("It's a tie! You chose rock and the computer chose rock!");
    } else if (UserChoice === "scissors" && computChoice === "rock") {
        window.alert("You lose! You chose rock and computer chose paper. Paper covers rock!");
} else {
    window.prompt("Invalid choice! Choose from rock, paper, or scissors");
}

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

В вашем случае вы просто добавляете } в конец кода.

Но есть и другие способы создания rock, paper, scissors game:

var UserChoice = window.prompt("Select rock, paper, or scissors");

var computChoice = Math.random();

var computChoice = computChoice < 0.33 ? "scissors" : ( computChoice > 0.66 ? "rock" : "paper" ) ;

var mess = { 
  rock : { scissors : 'You Win!, Rock smashes scissors!', paper : 'You lose!, Paper covers rock!'} ,
  paper : { rock : 'You Win!, Paper covers rock!', scissors : 'You lose!, Scissors cut paper!' },
  scissors : { paper : 'You Win!, Scissors cut paper!', rock : 'You lose!, Rock smashes scissors!' }
}

if ( computChoice === UserChoice)
  result = "It's a tie!" ; 
	 
else if ( UserChoice !== "rock" && UserChoice !== "paper" && UserChoice !== "scissors" )
  result = "Invalid choice! Choose from rock, paper, or scissors" ;

else
  result = mess[UserChoice][computChoice] ;

console.log( 'you chose ' + UserChoice + ' and computer chose ' + computChoice + ' ( ' + result + ' ) ') ;
0 голосов
/ 25 февраля 2019

Ваша проблема не связана с вашим кодом .Это простая синтаксическая ошибка .

В конце вы пропустили }, чтобы закрыть внешний оператор if.Я обновил ваш фрагмент, чтобы он работал ниже.

var UserChoice = window.prompt("Select rock, paper, or scissors");

var computChoice = Math.random();
if (computChoice <= 0.33) {
  computChoice = "scissors";
} else if (computChoice <= 0.66 && computChoice > 0.33) {
  computChoice = "paper";
} else {
  computChoice = "rock";
}

if (UserChoice === "paper") {
  if (UserChoice === "paper" && computChoice === "rock") {
    window.alert("You chose paper and the computer chose rock! You win! Paper covers rock");
  } else if (UserChoice === "paper" && computChoice === "paper") {
    window.alert("It's a tie!");
  } else if (UserChoice === "paper" && computChoice === "scissors") {
    window.alert("You lose! You chose paper and computer chose scissors. Scissors cut paper!");
  }
} else if (UserChoice === "scissors") {
  if (UserChoice === "scissors" && computChoice === "paper") {
    window.alert("You chose scissors and the computer chose paper! You win! Scissors cut paper.");
  } else if (UserChoice === "scissors" && computChoice === "scissors") {
    window.alert("It's a tie! You chose scissors and the computer chose scissors!");
  } else if (UserChoice === "scissors" && computChoice === "rock") {
    window.alert("You lose! You chose scissors and computer chose rock. Rock smashes scissors!");
  }
} else if (UserChoice === "rock") {
  if (UserChoice === "rock" && computChoice === "scissors") {
    window.alert("You chose rock and the computer chose scissors! You win! Rock smashes scissors.");
  } else if (UserChoice === "rock" && computChoice === "rock") {
    window.alert("It's a tie! You chose rock and the computer chose rock!");
  } else if (UserChoice === "scissors" && computChoice === "rock") {
    window.alert("You lose! You chose rock and computer chose paper. Paper covers rock!");
  } else {
    window.prompt("Invalid choice! Choose from rock, paper, or scissors");
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...