[英]Guess a number (rigged) - Javascript
大家。 我正在用Javascript做一些实验。 我想做一个猜谜游戏,用户猜一个0到100之间的数字,然后计算机告诉他/她“太低”,“太高”或“正确”。 但是,我希望对此进行操纵 。 也就是说,计算机应选择尽可能长的路径,以使用户正确获得答案。 例如:
现在,我只是随机地说“太低”或“太高”,这是有问题的。 例如:
如何避免这种情况? 电脑可以延长游戏时间,但不是不合逻辑的。
我的想法:
minValue
和maxValue
变量,以跟踪当前的猜测范围。 不幸的是,我不确定如何很好地实现这一点。 想法基本相同。 但是,我坚持执行它们。 先感谢您。
我想要一些步骤(或代码),以了解如何在Javascript中实现这些想法。
Jsfiddle(尽管可能无济于事,但几乎没有帮助): http : //jsfiddle.net/prankol57/f4JWw/
是的,只需使用两个边界变量。
maxNum = 100
minNum = 0
示例:用户猜测51
结果:计算机说该数字小于51,并设置maxNum = 50
如果(猜测> maxNum)
太高
否则(猜测<minNum)
太低
否则,如果(猜测>((maxNum + minNum)/ 2)),计算机将说出实际数字低于猜测
否则,如果(guess <((maxNum + minNum)/ 2)),计算机将说出实际数字高于猜测值
//仅当数字恰好是均值(maxNum,minNum)时才会发生
其他
我猜只是默认为计算机说的实际数字高于猜测。 这两种方式都不重要
无论如何,我认为有些伪代码可以回答您的问题。 不过总的来说,我真的建议您在这种问题上用头撞墙。 理解实现背后的逻辑是擅长执行工作的唯一方法。
使用@indiscrete伪代码创建。 :)
var min = 0;
var max = 100;
$("#guessForm").submit(function (e) {
var guess = parseInt($("#guess").val()) || 0;
var hint = checkGuess(guess);
$("<p>").addClass("guessRecord").html(hint).appendTo("#guessRecords");
$("#guess").val("");
e.preventDefault();
});
function checkGuess(guess) {
var mid = max - (Math.abs(max - min) / 2);
if (guess > mid) {
if (guess <= max) max = guess;
return "My number is less than " + guess + ".";
} else if (guess < mid) {
if (guess >= min) min = guess;
return "My number is greater than " + guess + ".";
} else {
return "Correct";
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.