【问题标题】:How to check Tic-Tac-Toe Winner如何查看井字游戏赢家
【发布时间】:2011-04-11 11:51:17
【问题描述】:

我想知道我的代码有什么问题。我使用网站正文中的表格和 javascript 制作了井字游戏。以下是我的代码的相关部分:

身体内部:

<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;
...

【问题讨论】:

标签: javascript html dreamweaver


【解决方案1】:

您的问题是 r == tbl.rows.length 始终为 false,因为 for 循环在 r

【讨论】:

  • r = tbl.rows.length 如果循环一直通过(即 break 未被调用或在最后一次迭代中被调用)
【解决方案2】:

您应该包含更多的 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 中,您没有为 image src 属性分配值,所以我认为此时您会根据谁点击它来分配一个 naught 或 cross。分配了适当的图像后,我将执行下一行。

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

在 for(...) 表达式中添加一个条件可能会更清楚,例如:

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

现在你可以使用 break 而不是:

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

.

}

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

same = false;

我需要查看更多 imageClicked 函数以了解它为什么不起作用。

【讨论】:

    猜你喜欢
    • 2022-12-16
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 2012-01-13
    • 1970-01-01
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多