javascript - 猜一个数字(被操纵) - Javascript

标签 javascript jquery

大家。我正在用 Javascript 做一个小实验。我想做一个猜谜游戏,用户猜测 0-100 之间的数字,计算机告诉他/她“太低”、“太高”或“正确”。但是,我希望这个被操纵。也就是说,计算机应该选择尽可能最长的路径让用户得到正确的答案。例如:

  1. 我猜是 10。由于大约有 90 个数字大于 10,但只有 10 个数字小于 10,计算机会说“我的数字比这个多”(为了延长游戏时间)。
  2. 然后我猜是 80。计算机应该说“我的数字小于这个数字。”
  3. 依此类推,直到只剩下一种可能性,计算机被迫说我得到了正确的答案。

现在,我只是随意地说“太低”或“太高”,这是有问题的。例如:

  1. 我说 50。计算机说“我的数字不止这个”
  2. 我说 25(尽管我知道这个数字超过 50)。计算机显示“我的数字小于该数字”,这意味着它正在作弊。

如何避免这种情况?计算机应该延长游戏时间,但并非不合逻辑。

我的想法:

  • 创建一个 minValuemaxValue 变量来跟踪当前猜测的范围。不幸的是,我不知道如何很好地实现这一点。
  • 创建一个包含计算机可能想到的所有可能值的数组。每次用户猜测时,删除不再可能的值。重复此操作,直到数组中只剩下一个元素。

思路基本一致。然而,我坚持实现它们。预先感谢您。

我想要一些关于如何在 Javascript 中实现这些想法的步骤(或代码)。

Jsfiddle(虽然可能没有多大帮助,但里面内容很少):http://jsfiddle.net/prankol57/f4JWw/

最佳答案

是的,只需使用两个边界变量。

最大数量= 100
最小数量=0

示例:用户猜测 51
结果:计算机说数量小于51,并设置maxNum = 50

if(猜测> maxNum)
太高了

else if(猜测< minNum)
太低了

else if (猜测 > ((maxNum+minNum)/2)) 计算机会说实际数字低于猜测

else if (猜测 < ((maxNum+minNum)/2)) 计算机会说实际数字高于猜测

//仅当数字恰好是平均值(maxNum,minNum)时才会发生
其他
我想只是默认计算机说实际数字高于猜测。无论如何,这并不重要

无论如何,我认为有一些伪代码可以回答您的问题。但总的来说,我真的建议你在这样的问题上用头撞墙。理解实现背后的逻辑是做好你所做的事情的唯一方法。

关于javascript - 猜一个数字(被操纵) - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24225124/

相关文章:

javascript - 如何动态选择 div 来拖动停止功能?

javascript - 如何从 .t​​s 文件中读取 .js 文件中的常量

javascript - 使用 jQuery 在链接上调用内联 JavaScript

javascript - 如何从变量运行函数?

javascript - 想要在滚动 > 10 后平滑地显示导航栏

javascript - 从 JavaScript 数组返回唯一键

javascript - 页面加载时使用已选定内容的 MixItUp 过滤器

javascript - 如何在一系列数组中搜索特定匹配并显示结果

javascript - 如何使 ng-click 在 Angular DataTables 列生成器中工作?

javascript - 打印 typescript 编译器选项