我正在尝试做一个网站,让你玩西蒙的游戏。但是它在我的第一次按键时就冻结了,这本应该开始游戏的。它可能陷入了一个无限循环,但我已经在每个循环中给出了中断条件。问题出在哪里?
我在我能想到的每一个地方都增加了破坏性的条件,但我不知道问题出在哪里。
$(document).ready(function () {
var order_array = [];
function press(j) {
$("#" + j).addClass(("play_pressed"));
//sound
setTimeout(function () {
$("#" + j).removeClass("play_pressed");
}, 500);
}
function order_add() {
var jk = Math.floor(Math.random() * 4);
switch (jk) {
case 0:
var j = 'p';
break;
case 1:
var j = 'q';
break;
case 2:
var j = 'r';
break;
case 3:
var j = 's';
break;
default:
var j = 'p';
break;
}
order_array.push(j);
press(j);
}
function order_check() {
var $k = true;
$("h1").text("Click the keys in Order!");
for (var i = 0; i < order_array.length && $k; i++) {
$(".play").click(function (e) {
if (order_array[i] != e.target.id) {
$k = false;
}
});
}
if (i < order_array.length - 1) {
console.log(order_array);
console.log(false);
return false;
}
console.log(order_array);
console.log(false);
return true;
}
$(document).keypress(function (e) {
$("h1").text("The game has begun!!");
var $c = true;
order_add();
setTimeout(function () {
$c = order_check();
}, 1000);
while ($c && order_array.length > 0) {
order_add();
setTimeout(function () {
$c = order_check();
}, 3000);
}
$("h1").text("The game has ended!!");
$("body").addClass("end");
});
}
)
字符串
1条答案
按热度按时间yacmzcpb1#
此问题可能由以下原因导致:
字符串
因为您一遍又一遍地创建许多计时器,每个计时器都重叠。(我不太确定,但我很确定)。而在
型
如果我是对的,never会切换到false,所以Timeout函数不起作用。(或者我是哑巴)。