我认为由于井字棋是如此简单,你可以只使用一个数组。
var board = new Array(9);
//Board layout:
// [0][1][2]
// [3][4][5]
// [6][7][8]
//Win if any of these combinations are present
//012, 036, 048, 147, 246, 258, 345, 678
然后只需循环board
并确定它是否具有X
or的值O
并进行一些简单的检查以查看它们是否连续有 3 个。
var x = [], o = [];
var winner = 'Game in Progress';
for(var i in board){
if(board.hasOwnProperty(i)){
if(board[i] == 'X')
x[i] = true;
else if(board[i] == 'O')
o[i] = true;
if(i == 8) winner = 'Cat Game';
}
}
if((x[0] && x[1] && x[2]) || (x[0] && x[3] && x[6]) ||
(x[0] && x[4] && x[8]) || (x[1] && x[4] && x[7]) ||
(x[2] && x[4] && x[6]) || (x[2] && x[5] && x[8]) ||
(x[3] && x[4] && x[5]) || (x[6] && x[7] && x[8])){
winner = 'X is the Winner';
}
if(winner != 'X is the Winner')
if((o[0] && o[1] && o[2]) || (o[0] && o[3] && o[6]) ||
(o[0] && o[4] && o[8]) || (o[1] && o[4] && o[7]) ||
(o[2] && o[4] && o[6]) || (o[2] && o[5] && o[8]) ||
(o[3] && o[4] && o[5]) || (o[6] && o[7] && o[8])){
winner = 'O is the Winner';
}
我写了一些制作井字游戏所需的代码,以便您更好地理解。剩下的就是显示轮到谁了,这样当玩家点击一个框(在他们的回合中)时,他们的符号就会被添加到那个框(如果它是空的),并重置游戏。祝你好运。:)