예제 #1
0
def elegant_solver_test():
    board_start = 1
    board_end = 6

    boards = []
    solved_boards_and_results = []
    board_time = []

    # Load in all boards
    for board_number in range(board_start, board_end + 1):
        file_path = 'Sudoku/Boards/board ' + str(board_number) + '.txt'
        boards.append(ElegantSolver.ElegantSolver(file_path))

    # Print original board
    for board_number in range(board_start, board_end + 1):
        solver = boards[board_number - 1]
        print '\nOriginal Board ' + str(board_number) + '\n'
        IO.print_board(solver.board.raw_board)

    # Get time for all boards
    start_time = datetime.datetime.now()

    for board_number in range(board_start, board_end + 1):
        solver = boards[board_number - 1]

        start_time_board = datetime.datetime.now()
        print '\nSolved Board ' + str(board_number) + '\n'
        solved_boards_and_results.append(solver.solve())
        end_time_board = datetime.datetime.now()

        board_time.append(end_time_board - start_time_board)

    # Get time for all boards
    end_time = datetime.datetime.now()

    # Calculate the difference between the start and end time for all boards
    diff_time = end_time - start_time

    # Get the time in seconds
    time = float(diff_time.seconds) + float(diff_time.microseconds) / float(1000000)

    # for board_number in range(board_start, board_end + 1):
    #     my_time = board_time[board_number - 1]
    #     board_time[board_number] = float(my_time.seconds) + float(my_time.microseconds) / float(1000000)

    # Display information to the user.
    print '\nTotal time'
    print time
    print ''

    # for board_number in range(board_start, board_end + 1):
    #     print '\nTime for Board ' + str(board_number)
    #     print board_time[board_number - 1]

    '''
예제 #2
0
def solve_board(file_path):
    # Load in board, and time how long it takes to solve.
    board = IO.load_board(file_path)
    start_time = datetime.datetime.now()
    solved_board, result = BruteForce.brute_force(board)
    end_time = datetime.datetime.now()

    # Calculate the difference between the start and end time
    diff_time = end_time - start_time

    # Get the time in seconds
    time = float(diff_time.seconds) + float(diff_time.microseconds) / float(1000000)

    # Display information to the user.
    print time
    print "\nOriginal Board\n"
    IO.print_board(board)
    print "\nSolved Board\n"
    IO.print_board(solved_board)

    return solved_board, result
예제 #3
0
    def test_loadBoard(self):

        loaded_board = IO.load_board('Unit Test Board 1.txt')
        self.assertEqual(loaded_board, self.solvedBoard1)