【问题标题】:Random Fruit guessing Game随机水果猜谜游戏
【发布时间】:2022-01-30 15:52:30
【问题描述】:

我已经是 Javascript 的第二周了,我们的任务是创建一个猜谜游戏。

我们得到的步骤是:

  1. 准备一份你最喜欢的水果列表,并将其存储在适当的数据结构中,让计算机随机选择一个水果作为密码。

  2. 根据所选水果给使用提示,如下例所示。您可以使用 prompt、alert 或 console.log 来显示提示

例如,如果秘密水果是“香蕉”

提示:长度为 6 个字符。以 b 开头,以 a 结尾。猜水果。 而不是为每个水果手动输入提示。尝试使用模板字符串并以编程方式计算出起始字母、结束字母和长度。

  1. 允许用户反复猜测水果,直到他们猜对为止。跟踪猜测的次数。

  2. 祝贺用户并显示他们尝试的次数。

我已经坐了一段时间,并尝试改变我的代码。我知道我很接近,但希望得到一些指示或提示。

这是我目前所拥有的:

var fruits = ["kiwi", "banana", "apple", "strawberry", "watermelon", "orange"];

var ranNum = Math.floor(Math.random() * fruits.length);

var secretFruit = fruits[ranNum];

var userPrompt = prompt("Guess the fruit");

var guess = 1;


while (userPrompt !== secretFruit) {

  prompt(
    "hint: it's " +
      secretFruit.length +
      " characters long. Starts with " +
      secretFruit[0] +
      " and ends with " +
      secretFruit.slice(-1) +
      ". guess the fruit."
  );

  guess++;

}
if (userPrompt == secretFruit) {

  alert(
    "Congratulations you guessed the fruit, and it took you " +
      guess +
      " guesses"
  );
}

任何帮助都会很棒,谢谢。

【问题讨论】:

  • secretFruit.slice(-1)[0]
  • 在 while 循环中,您只需要使用用户输入的新输入更新 userPrompt,例如 userPrompt = prompt( ...。因为目前您只存储第一个用户输入并每次将其与猜测词进行比较,而不是在用户输入新内容时更新它。
  • @bbbbbbbbb 实际上.slice(-1) 工作得很好。 "something".slice(-1) === "g" 不需要[0]
  • 添加 userPrompt = prompt( ) 效果很好,谢谢

标签: javascript arrays if-statement while-loop


【解决方案1】:

有两个问题:您的 while 循环和提示提示符。

首先,您的 while 循环会不断提示,而不会检查答案是否正确,因为您将 if 语句留在了循环之外。

另外,if 语句应该在提示语句之前,否则即使他们得到正确的答案,人们也必须再次尝试。

其次,您的提示提示从未被实际记录。这意味着尽管得到了正确的答案,但代码从未真正记录它。

另外,我建议添加一个break 语句以便游戏结束。

这是您的代码的工作版本:

    var fruits = ["kiwi", "banana", "apple", "strawberry", "watermelon", "orange"];

var ranNum = Math.floor(Math.random() * fruits.length);

var secretFruit = fruits[ranNum];

var userPrompt = prompt("Guess the fruit");

var guess = 1;


while (userPrompt !== secretFruit) {
if (userPrompt == secretFruit) {

  alert(
    "Congratulations you guessed the fruit, and it took you " +
      guess +
      " guesses"
  );break; //break statement here stops infinite loop when correct
}
  userPrompt = prompt(
    "hint: it's " +
      secretFruit.length +
      " characters long. Starts with " +
      secretFruit[0] +
      " and ends with " +
      secretFruit.slice(-1) +
      ". guess the fruit."
  );

  guess++;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    • 2019-06-02
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 2018-09-11
    相关资源
    最近更新 更多