Beispiel #1
0
def executeuserinputloop():
    i = readpositiveint(
        '\nPuzzle Generation Tactics \n1: From File\n2: Random Puzzle\n3: Hill Climbing\n4: Genetic Algorithm\n\nEnter your choice: '
    )

    if i == 1:
        print('\n----- Generate from File -----\n')
        filename = input('Input filename: ')
        f = open(filename, 'r')
        puz = Puzzle(int(f.readline()))
        puz.fromfile(f)

    elif i == 2:
        print('\n----- Random Puzzle -----\n')
        dim = readpositiveint('Puzzle dimension: ')
        puz = Puzzle(dim)

    elif i == 3:
        print('\n----- Hill Climbing -----\n')

        dim = readpositiveint('Puzzle dimension: ')
        iters = readpositiveint('Algorithm iterations: ')

        puz = hillclimbing(dim, iters)

    elif i == 4:
        print('\n----- Genetic Algorithm -----\n')

        dim = readpositiveint('Puzzle dimension: ')
        iters = readpositiveint('Algorithm iterations: ')

        # dim: puzzle dimension, iters: iterations of algorithm
        puz = geneticalgorithm(dim, iters)

    else:
        print('Invalid choice...')
        sys.exit()

    puz.printmovenums()
    puz.printdistances()

    i = readpositiveint(
        '\nPuzzle generated... \n1: Display puzzle\n2: Run A*\n3: Run BFS\n4: Run SPF\nEnter your choice: '
    )

    if i == 1:
        gui = Gui(puz)
        gui.title('Puzzle')
        gui.mainloop()

    elif i == 2:
        puz.astar()

    elif i == 3:
        puz.bfs()

    elif i == 4:
        puz.spf()

    else:
        print('Invalid choice...')