#include algorithms for mapping a maze, computing a path,
#and traversing the path
#import MazeMapper
import MazePather
import MazeTraverser

if __name__ == '__main__':
    #ask user for how fast the robot should go when mapping the maze and
    #how much time it should take before having transitioned between states
    #velocity = int(input("Enter the velocity you want the robot to go: "))
    #user_time = float(input("Enter the amount of time you want the robot to move before checking the state table: "))


    #create maze mapping object, containing data members for visited, row, and col
    #arrays, along with functions for accessing them, updating index, scanning
    #the environment
    #mapper = MazeMapper.Mapper('small')

    #call function to map a maze
    #mapper.compute_map()

    #access the map
    #maze_map = mapper.maze_map

    #get maze configuration
    maze_choice = int(input("What maze layout do you have?: "))

    #compute path with map, asking user where to start and exit the maze
    pather = MazePather.Pather(maze_choice)
    pather.init_env()
    #pather.print_maze()
    pather.train_model()
    maze_map,path = pather.get_path()
    #print(path)

    #traverse path
    traverser = MazeTraverser.Traverser(maze_map,path,start_row=path[0][0],start_col=path[0][1])
    traverser.init_env()
    #traverser.print_maze()
    traverser.follow_path()
