我如何确定井字游戏的赢家
How do I determine a winner in 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;
}
}
我们可以使用 Array.prototype.some
and Array.prototype.every
来实现我们的目标。
function checkWin(player) {
return winCombos.some(v => v.every(k => cells[k].textContent == player));
}
我一直在想如何使用 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;
}
}
我们可以使用 Array.prototype.some
and Array.prototype.every
来实现我们的目标。
function checkWin(player) {
return winCombos.some(v => v.every(k => cells[k].textContent == player));
}