def nn_vs_nn_export_better_player(): player1 = NNAgent1(verbose = True) player2 = NNAgent1(load_best=True) stats = Statistic(player1, verbose=True) while True: bg = Backgammon() bg.set_player_1(player1) bg.set_player_2(player2) winner = bg.play() player1.add_reward(winner) player2.add_reward(-1 * winner) stats.add_win(winner) if stats.nn_is_better() and stats.games_played % 100 == 0: break # only way to reach this point is if the current # neural network is better than the BestNNAgent() # ... at least I think so # thus, we export the current as best print("Congratulations, you brought the network one step closer") print("to taking over the world (of backgammon)!!!") player1.export_model(filename="nn_best_model")
def do_default(): """ Play with a neural network against random """ player1 = get_agent_by_config_name('nn_pg_2', 'best') player2 = get_agent_by_config_name('random', 'None') player1.training = True player2.training = True stats = Statistic(player1, verbose=True) # play games forever while True: bg = Backgammon() bg.set_player_1(player1) bg.set_player_2(player2) winner = bg.play() player1.add_reward(winner) player2.add_reward(-winner) # Reward the neural network agent # player1.reward_player(winner) stats.add_win(winner)