确定谁在 JavaScript 井字游戏中获胜

Determining who won in a JavaScript tic-tac-toe game

本文关键字:游戏 获胜 JavaScript      更新时间:2023-09-26
 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,即数字。

你的检查是错误的,你只是在检查它们是否真实。您没有检查它们是否相等。

另一个错误:代码中有一个随机分号。另一个错误:你从来没有定义过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;
}

更改:

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){