コード例 #1
0
ファイル: display.py プロジェクト: alexpaulzor/CursedGames
 def _compute_solution(self):
     if self._computed_solution:
         return self._computed_solution
     solver = SudokuBoardSolver()
     solver.load_game(self.board.current_state(givens_only=True))
     self.log("Computing solution...")
     last_status_clock = time.clock()
     # try:
     #     for msg in solver.solve_iter():
     #         if time.clock() - last_status_clock > 1:
     #             last_status_clock = time.clock()
     #             self.log(msg, replace=True)
     #             self.draw_board()
     # except UnsolvableError:
     #     pass
     if not solver.is_solved():
         self.log("Bruteforcing...")
         for msg in solver.bruteforce_iter():
             if time.clock() - last_status_clock > 1:
                 last_status_clock = time.clock()
                 self.log(msg, replace=True)
                 self.draw_board()
     if not solver.is_solved():
         self.log("Unsolvable puzzle!")
         return None
     if not self._computed_solution:
         self._computed_solution = solver.current_state(
             include_possibles=False)
     self._log_check_solution()
     return self._computed_solution
コード例 #2
0
ファイル: sudoku.py プロジェクト: alexpaulzor/CursedGames
def bruteforce(puzzle, x_regions, meta_regions, verbose):
    board = SudokuBoardSolver(x_regions, meta_regions)
    if puzzle:
        board.load_game(str(puzzle))
    # try:
    #     console_solve(board, verbose=verbose)
    # except UnsolvableError:
    #     print "Unsolvable by intuition. Bruteforcing..."
    last_status_clock = time.clock()
    for msg in board.bruteforce_iter():
        if verbose or time.clock() - last_status_clock > 1:
            last_status_clock = time.clock()
            print msg
    if board.is_solved():
        print "Solved! " + board.current_state(include_possibles=False)
    else:
        print "Could not solve " + board.current_state()
コード例 #3
0
 def _compute_solution(self):
     if self._computed_solution:
         return self._computed_solution
     solver = SudokuBoardSolver()
     solver.load_game(self.board.current_state(givens_only=True))
     self.log("Computing solution...")
     last_status_clock = time.clock()
     for msg in solver.solve_iter():
         if time.clock() - last_status_clock > 1:
             last_status_clock = time.clock()
             self.log(msg, replace=True)
             self.draw_board()
     if not solver.is_solved():
         self.log("Unsolvable puzzle!")
         return None
     self._computed_solution = solver.current_state(
         include_possibles=False)
     return self._computed_solution
コード例 #4
0
def solve(load, x_regions, meta_regions, verbose, disable_bruteforce):
    board = SudokuBoardSolver(x_regions, meta_regions)
    board.load_game(str(load))
    console_solve(board, verbose=verbose,
                  allow_bruteforce=not disable_bruteforce)
コード例 #5
0
ファイル: sudoku.py プロジェクト: alexpaulzor/CursedGames
def solve(puzzle, x_regions, meta_regions, verbose):
    board = SudokuBoardSolver(x_regions, meta_regions)
    if puzzle:
        board.load_game(str(puzzle))
    console_solve(board, verbose=verbose)