大家。我正在用 Javascript 做一个小实验。我想做一个猜谜游戏,用户猜测 0-100 之间的数字,计算机告诉他/她“太低”、“太高”或“正确”。但是,我希望这个被操纵。也就是说,计算机应该选择尽可能最长的路径让用户得到正确的答案。例如:
- 我猜是 10。由于大约有 90 个数字大于 10,但只有 10 个数字小于 10,计算机会说“我的数字比这个多”(为了延长游戏时间)。
- 然后我猜是 80。计算机应该说“我的数字小于这个数字。”
- 依此类推,直到只剩下一种可能性,计算机被迫说我得到了正确的答案。
现在,我只是随意地说“太低”或“太高”,这是有问题的。例如:
- 我说 50。计算机说“我的数字不止这个”
- 我说 25(尽管我知道这个数字超过 50)。计算机显示“我的数字小于该数字”,这意味着它正在作弊。
如何避免这种情况?计算机应该延长游戏时间,但并非不合逻辑。
我的想法:
- 创建一个
minValue
和maxValue
变量来跟踪当前猜测的范围。不幸的是,我不知道如何很好地实现这一点。 - 创建一个包含计算机可能想到的所有可能值的数组。每次用户猜测时,删除不再可能的值。重复此操作,直到数组中只剩下一个元素。
思路基本一致。然而,我坚持实现它们。预先感谢您。
我想要一些关于如何在 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/