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

My number of guesses wont stop at correct level

我目前只使用 JavaScript 制作雷区游戏。我在游戏结束时遇到了问题。我有三个难度级别,很容易给用户 45 次猜测,中级 40 次猜测和高级是 35 次猜测。但是,出于某种原因,当我将其设置为 intermediate/advanced 时,它会继续进行 45 次猜测,而不是应该停止的位置。

我花了很长时间查看它并更改了不同的东西,例如变量的名称和编辑代码。猜测工作正常,所以每个猜测实际上算作 1 次猜测,现在它们算作 3 次。代码现在停止在 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) 如何正确设置各个难度?

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

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;
}

编辑:您也有错别字,当您检查是否选中了中级和高级复选框时,您仍在检查简单元素。

编辑 2:此外,在您的代码中,您调用了 number_of_guesses++; 三次,这就是每次猜测计数 3 次的原因。要让他们只算一个,你只需要第一个。每次检查时,数字都会保持不变,因此您无需将其递增 3 次。

编辑 3:在我的代码中,请注意我是如何删除 if 语句中检查复选框是否被选中的 === false 部分的。