2011-04-10 59 views
0

我想知道我的代碼有什麼問題。我使用網站正文中的表格製作了一個井字遊戲。這裏是我的代碼的相關部分:如何查看井字棋贏家

體內:

<body> 
    </table> 

    <table id="matrix" border="1"> 
     <tr> 
      <td class="cellCSS"> 
       <img alt="Click Here" class="imageCSS" onclick="imageClicked(this,0,0)"/> 
      </td> 
      <td class="cellCSS"> 
       <img alt="Click Here" class="imageCSS" onclick="imageClicked(this,0,1)"/> 
      </td> 
      <td class="cellCSS"> 
       <img alt="Click Here" class="imageCSS" onclick="imageClicked(this,0,2)"/> 
      </td> 
     </tr> 
     ... 
    </table> 
</body> 

,這是功能的相關部分imageClicked:

... 
same = false; 
var r = 0; 
tbl = document.getElementById("matrix"); 
//alert(tbl.rows.length); 

for(r = 0; r < tbl.rows.length; r++) { 
    // alert('Bob'); 
    var _tempmg = tbl.rows[r].cells[col].childNodes[0].src; 
    alert(_tempmg); 
    if (!_tempmg) break; 
    if (_img.src != _tempmg) break; 
    same = true; 
} 

if (r == tbl.rows.length && same) { 
    alert(_img.src + "won"); 
    return; 
} 

same = false; 
... 
+0

在附註中,您最好將數據存儲在數組中,而不是在''本身內 – Eric 2011-04-10 16:11:45

+0

值得一看我的tic tac toe遊戲。 http://goo.gl/vgMT9 也可以在http://trcxbox.trcx.in/TicTacToe.html – Trcx 2013-04-17 00:26:31

回答

0

您的問題,條件是,R = = TBL。 rows.length始終爲false,因爲for循環會迭代,而r則是tbl.rows.length。

+0

找到你好,但如何解決它?把r == 3? – 2011-04-10 14:54:53

+0

r = tbl.rows.length如果循環完成(即中斷未被調用或在最後一次迭代時被調用) – RobG 2011-04-11 03:28:57

0

你應該多包含一點imageClicked函數。我猜想,這開始:

function imageClicked(element, row, col) { 

,並在您發佈代碼:

same = false; 

想必你已經聲明相同同期爲保持地方。

var r = 0; 

如果你在循環中這樣做,就不需要在這裏初始化r(即賦值)。

tbl = document.getElementById("matrix"); 

for(r = 0; r < tbl.rows.length; r++) { 
    var _tempmg = tbl.rows[r].cells[col].childNodes[0].src; 

    if (!_tempmg) break; 

在你的HTML,你有沒有賦值給圖像src屬性,所以我會想到,在這一點上你分配取決於誰點擊了它一個零或交叉。分配了合適的圖像後,我會執行下一行。

if (_img.src != _tempmg) break; 
    same = true; 

這可能是更清楚的條件加入到了(...)的表達,如:

for(r = 0; r < tbl.rows.length && !same; r++) { 

現在不是休息的,你可以使用:

if (_img.src == _tempmg) same = true; 

} 

if (r == tbl.rows.length && same) { 
    alert(_img.src + "won"); 
    return; 
} 

same = false; 

我需要看到更多的的imageClicked功能理解爲什麼它不工作。