isWinningBoard = (calls, board) => {
if (!board) return false;
const hitMap = board.map((row) => row.map((cell) => calls.includes(cell)));
const horizontals = [...hitMap];
const verticals = [],
diagonals = [[], []];
for (let i = 0; i < hitMap.length; i++) {
const vertical = [];
diagonals[0][i] = hitMap[i][i];
diagonals[1][i] = hitMap[i][hitMap[i].length - i - 1];
for (let j = 0; j < hitMap[i].length; j++) {
vertical[j] = hitMap[j][i];
}
verticals.push(vertical);
}
return [...verticals, ...horizontals].some((line) => line.every(_.identity));
return [...diagonals, ...verticals, ...horizontals].some((line) =>
line.every(_.identity)
);
}