Javascript 我的猜测不会停留在正确的水平

Javascript 我的猜测不会停留在正确的水平,javascript,numbers,getelementbyid,elements,Javascript,Numbers,Getelementbyid,Elements,我目前正在制作一个只使用JavaScript的雷区游戏。我在比赛结束时遇到了一个问题。我有三个难度等级,所以容易给用户45次猜测,中间40次猜测,高级35次猜测。然而,由于某种原因,当我将其设置为中级/高级时,它会继续进行45次猜测,而不是停止 之后,我花了很长时间研究它,并改变不同的东西,比如变量的名称和编辑代码。猜测是正确的,所以每个猜测实际上都算作一个猜测,现在他们算作三个。代码现在停在35 var number_of_guesses = 0; var maximum_guesses =

我目前正在制作一个只使用JavaScript的雷区游戏。我在比赛结束时遇到了一个问题。我有三个难度等级,所以容易给用户45次猜测,中间40次猜测,高级35次猜测。然而,由于某种原因,当我将其设置为中级/高级时,它会继续进行45次猜测,而不是停止

之后,我花了很长时间研究它,并改变不同的东西,比如变量的名称和编辑代码。猜测是正确的,所以每个猜测实际上都算作一个猜测,现在他们算作三个。代码现在停在35

var number_of_guesses = 0;
var maximum_guesses = 45;
var intermediate_guesses = 40;
var advanced_guesses = 35;
var number_of_hits = 0;
var number_of_misses = 0;

var element = opener.document.getElementById("easy");
if (element.checked === true)
{
maximum_guesses = 45;
}

var intermediate = opener.document.getElementById("intermediate");
if (element.checked === true)
{
intermediate_guesses = 40;
}

var advanced = opener.document.getElementById("advanced");
if (element.checked === true)
{
advanced_guesses = 35;
}

number_of_guesses++;
if (number_of_guesses > maximum_guesses)
{
window.alert("Sorry, you have run out of guesses!");
return;
}

number_of_guesses++;
if (number_of_guesses > intermediate_guesses)
{
window.alert("Sorry, you have run out of guesses!");
return;
}

number_of_guesses++;
if (number_of_guesses > intermediate_guesses)
{
window.alert("Sorry, you have run out of guesses!");
return;
}
谁能告诉我: a) 如何将每次猜测计算为1而不是3?
b) 如何正确设置每个难度?

试着让所有三个选项都设置
最大猜测
变量,而不是针对不同的难度设置三个不同的变量。然后只检查一个变量

var number_of_guesses = 0;
var maximum_guesses = 45;
var number_of_hits = 0;
var number_of_misses = 0;
// notice the missing intermediate_guesses and advanced_guesses vars

var element = opener.document.getElementById("easy");
if (element.checked)
{
maximum_guesses = 45;
}

var intermediate = opener.document.getElementById("intermediate");
if (intermediate.checked)
{
maximum_guesses = 40; // changed this to maximum_guesses
}

var advanced = opener.document.getElementById("advanced");
if (advanced.checked)
{
maximum_guesses = 35; // changed this to maximum_guesses
}

number_of_guesses++; // you only need this once
if (number_of_guesses > maximum_guesses)
{
window.alert("Sorry, you have run out of guesses!");
return;
}
编辑:您还有一个输入错误,当您检查中级和高级复选框是否被选中时,您仍然在检查easy元素

编辑2:另外,在您的代码中,您调用了
猜测次数++三次,这就是为什么每次猜测都计数三次。如果他们只算一个,你只需要第一个。每次检查时,数字将保持不变,因此不需要将其增加三倍


编辑3:在我的代码中,请注意我是如何删除if语句中的
===false
部分的,您在其中选中了复选框还是未选中复选框。

谢谢,我已对其进行了更改。我现在的猜测是1而不是3。当我选择intermediate时,它应该在40停止,但它会继续上升到45;当我按下advanced时,它应该在35停止,但再次上升到45。我需要修改什么才能使其工作?我的代码应该已经修复了这一点,因为中级和高级级别都在修改
最大猜测量
变量,然后由代码中的最后一个if语句检查该变量。您是否已将
中间猜测
高级猜测
更改为
最大猜测
?此外,您可能希望将
符号更改为
=
,以便在用户猜测35、40或45次时停止,不只是上面。是的,中间猜测和高级猜测现在显示最大猜测,但它仍然不起作用。无论如何,我可以把代码的完整副本发送给你,让你看看为什么它不起作用?