2014-09-03 97 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