Advertisement
Guest User

joes stupid dumb thing

a guest
May 22nd, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. board = [0, 0, 0, 0, 0, 0, 0, # do something with this board
  2. 0, 0, 0, 0, 0, 0, 0,
  3. 0, 0, 0, 0, 0, 0, 0,
  4. 0, 0, 0, 0, 0, 0, 0,
  5. 0, 0, 0, 0, 0, 0, 0,
  6. 0, 0, 0, 0, 0, 0, 0,]
  7.  
  8. width = 7
  9. height = 6
  10.  
  11. #wrapper function to deal with out-of-bounds cases
  12. def get_pos(board, x, y):
  13. if x < 0 or x >= width:
  14. return 0
  15. if y < 0 or y >= height:
  16. return 0
  17. return board[(height-y-1)*width+x]
  18.  
  19. def test_win_on_grid(board, grid, x, y):
  20. sum = 0
  21. for row in range(len(grid)):
  22. for col in range(len(grid[row])):
  23. if grid[row][col] == 1:
  24. sum += get_pos(board, x+col, y+row)
  25. if abs(sum) == 4:
  26. return sum//4
  27. return 0
  28.  
  29. def test_win_on_pos(board, x, y):
  30. grids = [
  31. [[1,1,1,1]], #horizontal
  32. [[1],[1],[1],[1]], #vertical
  33. [[1],[0,1],[0,0,1],[0,0,0,1]], #diagonal 1
  34. [[0,0,0,1],[0,0,1],[0,1],[1]]
  35. ]
  36. for grid in grids:
  37. print("testing grid {} on pos x: {} y: {}".format(grid, x, y))
  38. twog = test_win_on_grid(board, grid, x, y)
  39. if twog != 0:
  40. return twog
  41. return 0
  42.  
  43. def test_win(board):
  44. for row in range(height):
  45. for col in range(width):
  46. twop = test_win_on_pos(board, col, row)
  47. if twop != 0: return twop
  48. return 0
  49.  
  50. if __name__ == "__main__":
  51. print(test_win(board))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement