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
Exemple #4
0
    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
Exemple #5
0
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)