def start_game(): board_obj = Board(630, 630) playing = True while playing: redraw_window(win, board_obj) pygame.time.delay(1000) solve_board(board_obj.board) print_board(board_obj.board) redraw_window(win, board_obj) print_board(board_obj.board) pygame.time.delay(1000) break
def random_board_generator(n): board = [] for i in range(n): z = [] for j in range(n): z.append(0) board.append(z) step = int(math.sqrt(n)) for i in range(0, n, step): fill_box(board, i, i) solve_board(board) print_board(board) for i in range(n): for j in range(n): if random.random() < 0.5: board[i][j] = 0 return board
def set_val(self,val): i,j = self.selected_pos if self.board[i][j] == 0: self.cells[i][j].value = val self.set_board() if valid(self.board,i,j, val) and solve_board(self.board): return True else: self.cells[i][j].value = 0 self.cells[i][j].tmp = 0 self.board = self.board self.set_board() return False
def place(self, val): row, col = self.selected if self.cubes[row][col].value == 0: self.cubes[row][col].set(val) self.update_board() if valid(self.board, row, col, val) and solve_board(self.board): return True else: self.cubes[row][col].set(0) self.cubes[row][col].set_temp(0) self.update_board() return False
def input_page(): board = [] for i in range(9): z = [] for j in range(9): z.append(0) board.append(z) pygame.init() screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) clock = pygame.time.Clock() submit_box = SubmitBox(200, 525, 100, 50) input_boxes = [] border_boxes = [] for i in range(9): z = [] for j in range(9): z.append(InputBox(50 + 50 * i, 50 + 50 * j, 50, 50, i, j,board)) input_boxes.append(z) done = False for i in range(3): w = [] for j in range(3): w.append(TripleBox(50 + 150 * i, 50 + 150 * j, 150, 150)) border_boxes.append(w) z=0 while not done: for event in pygame.event.get(): if event.type == pygame.QUIT: z = 1 pygame.display.quit() return for box_row in input_boxes: for box in box_row: box.handle_event(event) if event.type == pygame.MOUSEBUTTONDOWN: if submit_box.rect.collidepoint(event.pos): done = True for box_row in input_boxes: for box in box_row: box.update() screen.fill((30, 30, 30)) for box_row in input_boxes: for box in box_row: box.draw(screen) for border_row in border_boxes: for border in border_row: border.draw(screen) submit_box.draw(screen) pygame.display.flip() clock.tick(30) for i in range(9): for j in range(9): if input_boxes[i][j].text in ['1','2','3','4','5','6','7','8','9']: board[i][j]=int(input_boxes[i][j].text) else: board[i][j]=0 if z == 0: solve_board(board) pygame.display.quit() out_page(board) if z == 1: pygame.display.quit() return
def display_solution(self): solve_board(self.board)
def solve_cell(): board_new = solve_board(board_values) copy_solved_cell(selected_cell, board_values, board_new)
def solve_puzzle(): global board_values board_new = solve_board(board_values) board_values = copy.deepcopy(board_new)