Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- board = [0, 0, 0, 0, 0, 0, 0, # do something with this board
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,]
- width = 7
- height = 6
- #wrapper function to deal with out-of-bounds cases
- def get_pos(board, x, y):
- if x < 0 or x >= width:
- return 0
- if y < 0 or y >= height:
- return 0
- return board[(height-y-1)*width+x]
- def test_win_on_grid(board, grid, x, y):
- sum = 0
- for row in range(len(grid)):
- for col in range(len(grid[row])):
- if grid[row][col] == 1:
- sum += get_pos(board, x+col, y+row)
- if abs(sum) == 4:
- return sum//4
- return 0
- def test_win_on_pos(board, x, y):
- grids = [
- [[1,1,1,1]], #horizontal
- [[1],[1],[1],[1]], #vertical
- [[1],[0,1],[0,0,1],[0,0,0,1]], #diagonal 1
- [[0,0,0,1],[0,0,1],[0,1],[1]]
- ]
- for grid in grids:
- print("testing grid {} on pos x: {} y: {}".format(grid, x, y))
- twog = test_win_on_grid(board, grid, x, y)
- if twog != 0:
- return twog
- return 0
- def test_win(board):
- for row in range(height):
- for col in range(width):
- twop = test_win_on_pos(board, col, row)
- if twop != 0: return twop
- return 0
- if __name__ == "__main__":
- print(test_win(board))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement