我想既然tic-tac-toe很簡單,那麼你可以使用一個單一的數組。
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
或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';
}
我寫了some of the code,你需要做一個井字棋遊戲,所以你可以更好地理解。剩下的東西就是展示是誰轉身,當玩家點擊一個盒子時(輪到他們),他們的符號被添加到該盒子(如果它是空的),並重置遊戲。祝你好運。 :)
你是否使用任何JavaScript框架,如jQuery? – djdy
兩者都有可能,你有偏好嗎? – mrtsherman
@mrtsherman,你認爲這會更快。我知道它的簡單檢查和(我相信)不應該花費太多時間,但通過多次檢查元素,我覺得它可能比數組花費更長的時間,並且只檢查其中的值。 Thoguhts? – ZAX