| 31 | |
| 32 | |
| 33 | class Board: |
| 34 | def __init__(self, window): |
| 35 | self.board = generate() |
| 36 | self.solvedBoard = deepcopy(self.board) |
| 37 | solve(self.solvedBoard) |
| 38 | self.tiles = [ |
| 39 | [Tile(self.board[i][j], window, i * 60, j * 60) for j in range(9)] |
| 40 | for i in range(9) |
| 41 | ] |
| 42 | self.window = window |
| 43 | |
| 44 | def draw_board(self): |
| 45 | for i in range(9): |
| 46 | for j in range(9): |
| 47 | if j % 3 == 0 and j != 0: |
| 48 | pygame.draw.line( |
| 49 | self.window, |
| 50 | (0, 0, 0), |
| 51 | (j // 3 * 180, 0), |
| 52 | (j // 3 * 180, 540), |
| 53 | 4, |
| 54 | ) |
| 55 | |
| 56 | if i % 3 == 0 and i != 0: |
| 57 | pygame.draw.line( |
| 58 | self.window, |
| 59 | (0, 0, 0), |
| 60 | (0, i // 3 * 180), |
| 61 | (540, i // 3 * 180), |
| 62 | 4, |
| 63 | ) |
| 64 | |
| 65 | self.tiles[i][j].draw((0, 0, 0), 1) |
| 66 | |
| 67 | if self.tiles[i][j].value != 0: |
| 68 | self.tiles[i][j].display( |
| 69 | self.tiles[i][j].value, (21 + j * 60, 16 + i * 60), (0, 0, 0) |
| 70 | ) |
| 71 | |
| 72 | pygame.draw.line( |
| 73 | self.window, |
| 74 | (0, 0, 0), |
| 75 | (0, (i + 1) // 3 * 180), |
| 76 | (540, (i + 1) // 3 * 180), |
| 77 | 4, |
| 78 | ) |
| 79 | |
| 80 | def deselect(self, tile): |
| 81 | for i in range(9): |
| 82 | for j in range(9): |
| 83 | if self.tiles[i][j] != tile: |
| 84 | self.tiles[i][j].selected = False |
| 85 | |
| 86 | def redraw( |
| 87 | self, |
| 88 | keys, |
| 89 | wrong, |
| 90 | time, |