2014-09-03 76 views
1

這裏是JS代碼:XO遊戲無法正常運行

<script language="javascript" type="text/javascript"> 
     var step = 1; 
     var e; 
     function move(a){ 
      if (step % 2 == 0) 
       e = "O"; 
      else 
       e = "X"; 
      document.getElementById(a).innerHTML = e; 
      step++; 
      alert(document.getElementById(a).value); 
     } 
    </script> 

和HTML:

 <table border="1" align="center"> 
      <tr> 
       <th colspan="3">X O Game</th> 
      </tr> 
      <tr align="center"> 
       <td id="td1" height="50" width="50" onclick="move('td1');"></td> 
       <td id="td2" height="50" width="50" onclick="move('td2');"></td> 
       <td id="td3" height="50" width="50" onclick="move('td3');"></td> 
      </tr> 
      <tr align="center"> 
       <td id="td4" height="50" width="50" onclick="move('td4');"></td> 
       <td id="td5" height="50" width="50" onclick="move('td5');"></td> 
       <td id="td6" height="50" width="50" onclick="move('td6');"></td> 
      </tr> 
      <tr align="center"> 
       <td id="td7" height="50" width="50" onclick="move('td7');"></td> 
       <td id="td8" height="50" width="50" onclick="move('td8');"></td> 
       <td id="td9" height="50" width="50" onclick="move('td9');"></td> 
      </tr> 
     </table> 

其看來,TD的是不確定的,這是爲什麼..任何一個可以幫助?我? 如果你按下使用TD它的oweride它。

+3

我不認爲'在TD – Huangism 2014-09-03 20:48:28

+0

他說的沒錯.value'工作,.value的沒有按」 t在td上工作。你必須使用'alert(document.getElementById(a).innerHTML)' – pmrotule 2014-09-03 20:50:56

回答

2

在TD上不能使用.value。使用innerHTML。在將其設置爲新值之前檢查它是否爲空。例如:

function move(a) { 
     var elem = document.getElementById(a); 
     if (!a.innerHTML) { 
      if (step % 2 == 0) e = "O"; 
      else e = "X"; 

      elem.innerHTML = e; 
      step++; 
     } 
    } 

參見:http://jsfiddle.net/wo2t5Lrn/

現在,如果你點擊已使用的電池,它會忽略它。如果您想添加else子句,例如,可以顯示錯誤消息而不是忽略用戶。

我假設你下一步將弄清誰贏了。看看這個:2 in a row c# program game儘管它是C#(但我只是用僞代碼來回答),原理是一樣的。您只需檢查當前移動是否爲贏得狀態的一部分,方法是檢查它是否爲三行中的一部分。

編輯:只是爲了好玩,我決定嘗試得到的東西實際工作:

http://jsfiddle.net/wo2t5Lrn/4/

+0

非常感謝你很棒 – WolfJee 2014-09-03 21:13:21