确定谁在JavaScript tic-tac-toe游戏中获胜

时间:2014-12-17 21:02:18

标签: javascript tic-tac-toe

 var winning = [
           [0, 1, 2],
           [3, 4, 5],
           [6, 7, 8],
           [0, 3, 6],
           [1, 4, 7],
           [2, 5, 8],
           [0, 4, 8],
           [2, 4, 6]
        ];
//this are all the possible ways to win    

function checkwin (box) {
    for (var i = 0; i < winning.length; i++) {
        if (document.getElementById(box + winning[i][0]).innerHTML && document.getElementById(box + winning[i][1]).innerHTML && document.getElementById(box + winning[i][2]).innerHTML);{
            alert(innerHTML + 'won') 
        }
    }
}

我试图在每个方框中循环以检查获胜者 我使用for循环来创建框,并且必须使用box.id = 'box' + i给每个框一个id作为数字。

2 个答案:

答案 0 :(得分:0)

如果检查错了,您只是检查它们是否真实。你没有检查他们是否平等。

另一个错误:代码中有一个随机分号。 另一个错误:你从未定义过innerHTML。

if (document.getElementById(box + winning[i][0]).innerHTML && 
    document.getElementById(box + winning[i][1]).innerHTML && 
    document.getElementById(box + winning[i][2]).innerHTML);{
                                                           ^---BUG

我假设您要检查它们是否相等

var cell1 = document.getElementById(box + winning[i][0]).innerHTML;
var cell2 = document.getElementById(box + winning[i][1]).innerHTML;
var cell3 = document.getElementById(box + winning[i][2]).innerHTML;
if (cell1===cell2 && cell1===cell3) {
    alert(cell1);
    break;
}

答案 1 :(得分:0)

变化:

if (document.getElementById(box + winning[i][0]).innerHTML && 
    document.getElementById(box + winning[i][1]).innerHTML && 
    document.getElementById(box + winning[i][2]).innerHTML);{

为:

if (document.getElementById(box + winning[i][0]).innerHTML == document.getElementById(box + winning[i][1]).innerHTML &&
    document.getElementById(box + winning[i][1]).innerHTML == document.getElementById(box + winning[i][2]).innerHTML){