示例#1
0
def run(arg):
    start_time = time.time()

    game_number = int(arg[1])

    #    PLAY_TYPE = 'step'
    #  PLAY_TYPE = 'batch'
    #  PLAY_TYPE = 'play'

    # Run the local debugger
    engine = LocalEngine(game=None)

    if game_number > 0:
        qbot = QLearnBot(engine.GetWorld(), load_file='saved_bots/qbot.json')
    else:
        # init qbot with weights 0
        qbot = QLearnBot(engine.GetWorld(), load_file=None)
        qbot.set_features(
            CompositingFeatures(AdvancedFeatures(), AdvancedFeatures()))
        qbot.set_weights([0 for j in range(0, qbot.features.num_features())])

    # Generate and play on random 30 x 30 map
    random_map = SymmetricMap(min_dim=50, max_dim=50)
    random_map.random_walk_map()
    fp = file("src/maps/2player/my_random.map", "w")
    fp.write(random_map.map_text())
    fp.close()

    # set up a game between current qbot and GreedyBot
    engine.AddBot(qbot)
    engine.AddBot(GreedyBot(engine.GetWorld()))
    qbot.ngames = game_number + 1

    engine.Run(PLAY_TYPE,
               arg + ["--run", "-m", "src/maps/2player/my_random.map"])
    qbot.save('saved_bots/qbot.json')
    # this is an easy way to look at the weights
    #qbot.save_readable('saved_bots/qbot-game-%d.txt' % game_number)

    end_time = time.time()
    print 'training done, delta time = ', end_time - start_time
示例#2
0
    PLAY_TYPE = 'play'

    # Run the local debugger
    engine = LocalEngine(game=None)

    if game_number > 0:
        qbot = QLearnBot(engine.GetWorld(), load_file='saved_bots/qbot.json')
    else:
        # init qbot with weights 0
        qbot = QLearnBot(engine.GetWorld(), load_file=None)
        qbot.set_features(CompositingFeatures(BasicFeatures(),
                                              BasicFeatures()))
        qbot.set_weights([0 for j in range(0, qbot.features.num_features())])

    # Generate and play on random 30 x 30 map
    random_map = SymmetricMap(min_dim=50, max_dim=50)
    random_map.random_walk_map()
    fp = file("src/maps/2player/my_random.map", "w")
    fp.write(random_map.map_text())
    fp.close()

    # set up a game between current qbot and GreedyBot
    engine.AddBot(qbot)
    engine.AddBot(GreedyBot(engine.GetWorld()))
    qbot.ngames = game_number + 1
    engine.Run(PLAY_TYPE,
               sys.argv + ["--run", "-m", "src/maps/2player/my_random.map"])
    qbot.save('saved_bots/qbot.json')
    # this is an easy way to look at the weights
    qbot.save_readable('saved_bots/qbot-game-%d.txt' % game_number)