Exemplo n.º 1
0
def startLearning():
    brain = Brain([Maze.ACTION_UP, Maze.ACTION_DOWN, Maze.ACTION_LEFT, Maze.ACTION_RIGHT])
    for episode in range(EPISODE_COUNT):
        maze = Maze(initialMaze)
        mazeView.updateMaze(maze)
        steps = 0
        while True:
            oldState = maze.avatarCoodinate()
            action = brain.chooseAction(str(oldState))
            maze.moveAvatar(action)
            steps += 1
            mazeView.updateMaze(maze)
            reward = maze.currentReward()
            newState = maze.avatarCoodinate()
            brain.updateActionReward(str(oldState), action, str(newState), reward)
            if (maze.isTerminated()):
                if (reward > 0):
                    print("Success with {0} steps in training episode {1}.".format(steps, episode))
                else:
                    print("Failed with {0} steps in training episode {1}.".format(steps, episode))
                break
    print(brain.qTable)