在第0行找到无限循环
Infinite loop found on line 0
我正试图制作一个井字游戏,但在Codepen中,我的Javascript给了我一个错误,说"在第0行找到了无限循环。行号是近似值,所以请仔细查看。"这是笔
请参阅CodePen上Maris(@spacegeek224)的Pen Tic Tac Toe。这是我的JS:
(function() {
var PLAYERS = ['X','O'];
var TURN = PLAYERS[0];
var BOARD = [new Array(3),new Array(3),new Array(3)];
function togglePlayer() {
TURN = (TURN == PLAYERS[0]) ? PLAYERS[1] : PLAYERS[0];
}
$('.square').click(function(e) {
if ($(e.target).attr('data-p')) {
} else {
$(e.target).attr('data-p',TURN).text(TURN);
BOARD[$(e.target).attr('data-y')][$(e.target).attr('data-x')] = TURN;
if (checkWin(BOARD)) {
$('.turn').attr('data-p',checkWin(BOARD)).text(checkWin(BOARD) + " wins!");
$('.square:not([data-p])').attr('data-p',true);
}
else {
togglePlayer();
$('.turn').attr('data-p',TURN).text(TURN+"''s turn");
}
}
});
function checkWin(board) {
for (var i = 0;i<3;i++) {
if (board [0][i] !== undefined)
if (board[0][i]==board[1][i] && board[1][i] == board[2][i])
return board[0][i];
else if (board [i][0] !== undefined)
if (board[i][0]==board[i][1] && board[i][1] == board[i][2])
return board[i][0];
else if (board[1][1] !== undefined)
if (board[0][0] == board[1][1] && board[1][1] == board[2][2])
return board[1][1];
else if (board[0][2] == board[1][1] && board[1][1] == board[2][0])
return board[1][1];
}
return false;
}
$('.container').on('dblclick',function() {
$('.square').removeAttr('data-p').text('');
BOARD = [new Array(3),new Array(3),new Array(3)];
TURN = PLAYERS[0];
$('.turn').attr('data-p',TURN).text(TURN+"''s turn");
});
})();
我想明白了,我不敢相信我以前没有看到这个。在checkWin函数中,我应该将if
而不是if else
放在for循环中。
相关文章:
- 使用滚动溢出-x进行无限循环
- 从index.html调用函数,该函数无限循环
- 使用jQuery无限循环播放HTML页面幻灯片
- Grunt任务没有加载,获得无限循环
- 如何在不进入无限循环的情况下将网站重定向到Facebook画布URL
- Backbone+RequireJS+Mediator模式导致视图逻辑短路和无限循环
- jQuery无限循环,动画化许多项目
- 如何避免试图用php+jquery显示php起始页的无限循环
- 6502仿真增强型基本无限循环$C000至$E0ED
- Angular ngRoute导致无限循环和堆栈溢出
- Jquery:无限循环和暂停
- 数组数组:无限循环
- MeteorJS使用流星调用和流星方法时的无限循环
- 如何在e2e测试中循环通过行-列
- 如何无限循环数据集字符串
- jquery在无限循环中运行
- 遍历对象会导致无限循环
- 为什么内部Javascript循环会阻止外部循环中断(即无限循环)
- 角度编译指令似乎进入了无限循环
- 在第0行找到无限循环