我正在编写一个简单的n-back游戏,在会话结束时,我弹出一条警报消息,告诉用户如果他们的n-back得分达到75%或更高,他们的n-back等级就会提高。但是由于某种原因,在用户单击“确定”或单击回车后,setInterval
函数似乎又要运行一次。在我创建的网格上,即使应该结束该会话,也将再显示一个正方形。我将在下面发布相关的游戏代码:
$('#start').click(function()
{
let counter = 0;
message_switch = true;
$('#start').blur();
$('#score-output').text(0);
$('#percentage').text('%');
var intervalID = setInterval(function()
{
counter++;
show_card(get_cardID(cardIDs));
if (counter === 30)
{
window.clearInterval(intervalID);
message_switch = false;
var score = Math.round((playerMatches.length / matches.length) * 100);
score = score - (error_count * 3);
update_score(score);
if (score < 50)
{
if (n_back < 2)
{
n_back = 1;
} else {
n_back = n_back - 1;
}
} else if (score < 75 && score >= 50)
{
n_back = n_back;
} else if (score >= 75) {
n_back = n_back + 1;
};
$('#nback').text(n_back);
reset_game_values();
if (score >= 75) //here there is some issue
{
window.alert("Congratulations, you will move up to " + n_back + " back.");
score = 0;
return;
} else {
score = 0;
}
}
}, 3500);
})
我知道这是很多代码,并且我还没有提供很多代码,主要是为了简短起见。有人看到我看不到的明显东西吗?如果您觉得需要查看更多程序,我可以提供。谢谢。