2015-04-25 3 views
0

Я изо всех сил пытаюсь добавить возможность поворота в этой программе, которую я хочу сделать. Мне нужно добавить "X" везде, где игрок нажимает, а затем на второй клик добавит "O". когда я запускаю этот код, он только "X" каждый раз, когда я нажимаю его. Как мне это изменить?Базовый tic-tac-toe 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) 'in' if (turn) 'и' if (turn == false) 'in' 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 

} 

оператор сравнения (==) был использован, он должен был оператор присваивания (=)