我已经进入了Javascript的第二周,我们的任务是创建一个猜谜游戏。
我们得到的步骤如下:
所选水果的
。
例如,如果秘密水果是“香蕉”
提示:它有6个字符长。以b开头,以a结尾。猜猜水果。而不是手动输入每一个水果的提示。尝试使用模板字符串并以编程方式计算起始字母、结束字母和字符长度。
我已经在这上面坐了一段时间了,并且尝试着改变我的代码。我知道我很亲近,但我会喜欢一些指点或提示。
到目前为止,这就是我所拥有的:
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"
);
}任何帮助都会很好,谢谢。
发布于 2022-01-30 07:52:30
有两件事错了: hint循环和提示提示符。
首先,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++;
}https://stackoverflow.com/questions/70911957
复制相似问题