32 lines
604 B
TypeScript
32 lines
604 B
TypeScript
const possibleCombos = [
|
|
// horizontal
|
|
[0, 1, 2],
|
|
[3, 4, 5],
|
|
[6, 7, 8],
|
|
// vertical
|
|
[0, 3, 6],
|
|
[1, 4, 7],
|
|
[2, 5, 8],
|
|
// diagonal
|
|
[0, 4, 8],
|
|
[2, 4, 6]
|
|
];
|
|
|
|
export function bingoDone(fields: boolean[]) {
|
|
// TODO: Support different sizes
|
|
if (fields.length < 9) {
|
|
return false;
|
|
}
|
|
|
|
return possibleCombos.some((combo) => combo.every((ci) => fields[ci]));
|
|
}
|
|
export function findBingo(fields: boolean[]) {
|
|
// TODO: Support different sizes
|
|
if (fields.length < 9) {
|
|
return 0;
|
|
}
|
|
|
|
return possibleCombos.filter((combo) => combo.every((ci) => !!fields[ci]))
|
|
.length;
|
|
}
|