2015-04-25 68 views
0

我很努力地在這個程序中加入輪流選項。我需要在播放器點擊的位置添加一個"X",然後在第二次點擊時將添加一個"O"。當我運行此代碼時,每次單擊它時,它只會執行"X"。我該如何改變這一點?基本井字棋JavaScript

function X() { 
    this.innerHTML = "X"; 
} 

function O() { 
    this.innerHTML = "O"; 
} 

function XDO() { 
    for (i = 1; i <= 9; i++) { 
     document.getElementById("cell" + i).onclick = X; 
    } 
} 

function ODO() { 
    for (i = 1; i <= 9; i++) { 
     document.getElementById("cell" + i).onclick = O; 
    } 
} 

var turn = true; 

if (turn == true) { 
    XDO(); 
    turn == false; 

} else if (turn == false) { 
    ODO(); 
    turn == true;  
} 
+0

'否則如果(轉==假){ ODO(); turn == true; }'不會隨時運行 – ashkufaraz

+0

我會建議將'if(turn == true)'變成'if(turn)'和'if(turn == false)'成'if(!turn)'。並不是說它改變了代碼的功能,但是更像這樣寫下來更有意義(imho)。 – martijnn2008

+0

根據輪到誰玩,你不應該安裝不同的處理程序。相反,你的遊戲應該跟蹤'currentPlayer',並且每當單擊一個單元時,就會使用'currentPlayer'符號。 – plalx

回答

1

在下面的代碼段..

if(turn==true) 
{ 
XDO(); 
turn==false; // assignment operator should be used turn =false 

} 
else if(turn ==false) 
{ 

ODO(); 
turn==true; // assignment operator should be used turn =true 

} 

比較運算符(==)使用,它應該已經賦值運算符(=)