couldn't help myself, I think 3-5 min
grid = [
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0],
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0],
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0],
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0],
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0],
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0],
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0],
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0],
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0],
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
]
foo = function(x,y,num){
if (grid[x][y] == num) return true;
if (grid[x+1] && grid[x+1][y] == num) return true;
if (grid[x+2] && grid[x+2][y] == num) return true;
if (grid[y+1]){
if (grid[x][y + 1] == num) return true;
if (grid[x+1] && grid[x+1][y+1] == num) return true;
if (grid[x+2] && grid[x+2][y+1] == num) return true;
}
if (grid[y+2]){
if (grid[x][y+2] == num) return true;
if (grid[x+1] && grid[x+1][y+2] == num) return true;
if (grid[x+2] && grid[x+2][y+2] == num) return true;
}
return false;
}
alert(foo(1,2,3));
alert(foo(1,2,30));
humm worked first try, probably something wrong with it..
https://jsfiddle.net/ycx159kg/
13 min later...
round2 = function(x,y,num){
return grid.slice(x,x+3).map(g=>g.slice(y,y+3)).flat().includes(num);
}