如何为猜谜游戏添加高级响应?



我正在尝试制作一个猜数字游戏,其中用户有 6 次尝试尝试猜测 1-100 之间的数字。使用codehs中的代码编辑器,我创建了一个满足基本要求的程序。

问题是我试图为用户提供扩展的反馈,以便如果用户连续猜测两个或多个低猜测,消息将更改为"对不起,该猜测仍然太低",并且类似 2 个或更多高猜测。

我尝试创建另一个变量来跟踪上次猜测的结果。但是,我在编码它可能处于的 3 种不同状态时遇到问题。例如,如果使用整数变量,则可以使用以下值来表示不同的可能状态:

  • -1:到目前为止还没有猜测
  • 0:最后猜测太低
  • 1:最后的猜测太高了

如果有人对此有更好的方法,请提出建议,因为我没有在不给我错误的情况下让它工作。

function start() {
var tarNum = 50;
//var randomTarNum = Randomizer.nextInt(1, 100);
var userGuess;
for(var i = 0; i < 6; i++){
userGuess = readInt("Guess the number.")
if(tarNum == userGuess){
println("Correct guess");
break;
}else if(tarNum< userGuess){
println("Guess was too high.");
}else if(tarNum> userGuess){
println("Guess was to low.");
}
}
}

假设随机数是 50:

  1. 启动程序后,我的第一个猜测是 10,
  2. 控制台应打印"猜测太低">
  3. 在猜出另一个像25这样的低答案后,
  4. 控制台应打印"猜测仍然太低">

同样,如果猜测很高。

将最后一个猜测保存在一个名为lastGuess的变量中,然后检查:

function start() {
var tarNum = 50;
var userGuess;
var lastGuess;
for (var i = 0; i < 6; i++) {
userGuess = readInt("Guess the number.")
if (tarNum == userGuess) {
println("Correct guess");
break;
} else if (tarNum < userGuess) {
if (lastGuess && lastGuess < tarNum) {
println("Guess was STILL too high.");
} else {
println("Guess was too high.");
}
lastGuess = userGuess;
} else if (tarNum > userGuess) {
if (lastGuess && tarNum > lastGuess) {
println("Guess was STILL too low.");
} else {
println("Guess was too low.");
}
lastGuess = userGuess;
}
}
}

最新更新