我如何确定井字游戏的获胜者

时间:2020-03-31 23:24:50

标签: javascript tic-tac-toe

我一直试图弄清楚如何使用WinCombos确定赢家,但失败了。

我如何比较我的阵列(winCombos)和3x3井字游戏板上的单元格,以确定获胜者?

var player1 = "X";
var player2 = "O";
let currentClass = player1
const winCombos = [
    [0, 1, 2],
    [3, 4, 5],
    [6, 7, 8],
    [0, 3, 6],
    [1, 4, 7],
    [2, 5, 8],
    [0, 4, 8],
    [6, 4, 2]
] 


let cells = document.querySelectorAll(".row>div");
console.log(cells);

for (var i = 0; i < cells.length; i++){
   cells[i].addEventListener('click', cellClicked, {once: true})
   var j =  cells[i] 
}


function cellClicked(){
  if(currentClass == player1){
    event.target.textContent = currentClass;
    currentClass = player2;
    if(checkWin(currentClass)){
      console.log("winner");
    }        
  }else{
    currentClass == player2;
    event.target.textContent = currentClass;
    currentClass = player1;
  }
}

1 个答案:

答案 0 :(得分:0)

我们可以使用Array.prototype.someArray.prototype.every来实现我们的目标。

function checkWin(player) {
    return winCombos.some(v => v.every(k => cells[k].textContent == player));
}