2017-02-22 6 views
1

Also versuche ich ein Tic Tac Toe Spiel für die Praxis mit Javascript zu entwickeln, aber ich habe einen Roadblock getroffen. Ich habe eine if-Anweisung, die zwar wahr, aber nicht wahr ist. Hier ist ein Beispiel.Wenn die Anweisung den richtigen Code nicht ausführt?

var game = true; 
var x = 'X'; 
var o = 'O'; 
var blank = ''; 

var turn = x; 
var board = [blank, blank, blank, 
      blank, blank, blank, 
      blank, blank, blank]; 

function write() { 

    $('td').click(function() { 
     //Making sure that the block that was clicked can only be clicked once 
     var id = $(event.target).attr('id'); 
     var digit = parseInt(id.slice(-1)); 
     //check to see of the block has been clicked on 
     if (board[digit] = blank) { 
      board[digit] = turn; 
      $(board[digit]).html(turn.toUpperCase()); 
      if (turn = x) { 
       turn = o; 
      } else if (turn = o) { 
       turn = x; 
      } 

     } else { 
      alert("That box has already been clicked on!") 
     } 
    }); 

} 
+4

'=' ist für ** Zuweisung **, '==' oder '===' sind zum Vergleich. – Pointy

+1

Übrigens sollten Sie wirklich darauf achten, das eindimensionale Array in etwas wie "[[b, b, b], [b, b, b], [b, b, b]"] zu verwandeln, nur ein Vorschlag – ajax333221

Antwort

1

Sie haben zwei Probleme auf den ersten Blick.

Zunächst ist event nicht definiert. Definieren Sie es als Funktionsparameter in Ihrem .click Aufruf.

$('td').click(function(event) { /* rest of the code */ } 

Zweitens, wie Zipfel kommentiert, ist = für die Zuordnung, == und === sind für Vergleiche gemeint. So

if (board[digit] = blank) { /**/ } 

Bedürfnisse

if (board[digit] === blank) { /**/ } 

In Bezug auf die Differenz zwischen == und === werden Sie hier weitere Informationen https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness

Kurzversion bekommen, bevorzugen ===, wenn Sie absolut sicher sind, Sie wissen, was Sie tun und explizit verwenden möchten ==.

1
if (board[digit] === blank) { 
        ^^ 
Verwandte Themen