javascript - 我需要添加什么,以便我的 JavaScript 可以按我希望的方式运行?

标签 javascript browser alert

我开始学习 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/

相关文章:

javascript - 应用没有 ng-class 的类?

html - 强制网络浏览器识别跨站点的更新图形

javascript - 浏览器是否原生优化连续批量 dom 更新?

javascript - 动态选择单选按钮

ruby-on-rails - 在 Rails 中呈现 Action 时不显示警报

android - 在Android中每10秒显示一次数据

javascript - 如何在 Nodejs 中使用时区偏移?

javascript - 具有固定标题和固定列的 HTML 表格?

php - 向 Web 表单动态添加多个元素 - 下拉菜单

javascript - 使用浏览器将通过 http 发送的 Base64 编码数据保存为二进制文件