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
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
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)
if game_number > 0: qbot1 = QLearnBot(engine.GetWorld(), load_file='saved_bots/qbot1.json') qbot2 = QLearnBot(engine.GetWorld(), load_file='saved_bots/qbot2.json') else: # init qbot with weights 0 qbot1 = QLearnBot(engine.GetWorld(), load_file=None) qbot1.set_features(CompositingFeatures(BasicFeatures(), QualifyingFeatures())) qbot1.set_weights([0 for j in range (0, qbot1.features.num_features())]) qbot2 = QLearnBot(engine.GetWorld(), load_file=None) qbot2.set_features(CompositingFeatures(BasicFeatures(), QualifyingFeatures())) qbot2.set_weights([0 for j in range (0, qbot2.features.num_features())]) # Generate and play on random 30 x 30 map random_map = SymmetricMap(min_dim=30, max_dim=30) random_map.random_walk_map() fp = file("src/maps/2player/my_random.map", "w") fp.write(random_map.map_text()) fp.close() qbot1.ngames = game_number + 1 qbot2.ngames = game_number + 1 if game_number % 5 == 4: engine.AddBot(GreedyBot(engine.GetWorld())) engine.AddBot(qbot1) engine.Run(sys.argv + ["--run", "-m", "src/maps/2player/my_random.map", "-t", str(MAX_TURNS)], run_mode=PLAY_TYPE) engine = LocalEngine(game=None, run_mode=PLAY_TYPE) engine.AddBot(GreedyBot(engine.GetWorld())) engine.AddBot(qbot2) engine.Run(sys.argv + ["--run", "-m", "src/maps/2player/my_random.map", "-t", str(MAX_TURNS)], run_mode=PLAY_TYPE)