我开始学习 JavaScript,这是我制作的第一款游戏:石头剪刀布。 (Player vs Computer)现在,一切正常,但我不知道如何制作这个:
当结果为平局时,游戏会再次开始询问我是否想再玩一次,而无需刷新浏览器。
请不要用 jQuery 回答,我正在努力学习 JavaScript! :)
这是我的代码片段:
// declare variables
var userChoice = prompt("Do you choose rock, paper or scissors?");
var computerChoice = Math.random();
// prevent the user from choosing a different answer
if (userChoice !== "rock" && userChoice !== "paper" && userChoice !== "scissors") {
userChoice = prompt("Your answer is not acceptable! Please choose again!");
}
// pick a random answer from computer
if (computerChoice < 0.34) {
computerChoice = "rock";
} else if (computerChoice <= 0.67) {
computerChoice = "paper";
} else {
computerChoice = "scissors";
}
alert("Computer: " + computerChoice);
// check who wins
var compare = function(choice1, choice2) {
if (choice1 === choice2) {
alert("The result is a tie!");
} else if (choice1 === "rock") {
if (choice2 === "scissors") {
alert("rock wins");
} else {
alert("paper wins");
}
} else if (choice1 === "paper") {
if (choice2 === "rock") {
alert("paper wins");
} else {
alert("scissors win");
}
}
}
// call the function
compare(userChoice, computerChoice);
最佳答案
您基本上要做的是将游戏包装在一个更大的上下文循环中,它本身只是检查游戏的终止条件。
在结构上,我们假设您的整个游戏都包含在一个函数中:
function playGame() {
// all the code you have now
}
然后循环将具有如下结构:
while (true) {
playGame();
if (!confirm("Would you like to play again?")) {
break;
}
}
您当然可以通过确认获得更多乐趣,或者使用一个值来控制循环而不是使用 break
的无限循环。但概念是一样的。整个循环将继续重复并“再次播放”,直到存在导致其停止的某些条件。
所以在你的情况下,你想检查它是否平局,是吗?结构上是这样的:
while (true) {
playGame();
if (!gameIsTie()) {
break;
}
}
或:
var winner = 0;
while (winner == 0) {
playGame();
winner = determineWinner();
}
您将在其中实现确定游戏是否平局或是否有赢家等所需的功能。
关于javascript - 我需要添加什么,以便我的 JavaScript 可以按我希望的方式运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38789704/