def run_game_loop(board, agent1, agent2, do_print=False): game = Game(board) while not game.is_finished(): dice = game.roll_dice() if do_print: board.print() print("Dice for AI1 were {}.".format(dice)) ai_moves = agent1.move(dice) if do_print: print("Resulting moves: {}.".format(", ".join( [str(move) for move in ai_moves]))) game.apply(game.PLAYER1, ai_moves) if game.is_finished(): break dice = game.roll_dice() if do_print: board.print() print("Dice for AI2 were {}.".format(dice)) ai_moves = agent2.move(dice) if do_print: print("Resulting moves: {}.".format(", ".join( [str(move) for move in ai_moves]))) game.apply(game.PLAYER2, ai_moves) return game.get_winner()
def run_game_loop(board, agent1, agent2, do_print=False): game = Game(board) while not game.is_finished(): agent1.learn() #agent1.backprop() dice = game.roll_dice() if do_print: board.print() print("Dice for AI1 were {}.".format(dice)) ai_moves = agent1.move(dice) if do_print: print("Resulting moves: {}.".format(", ".join( [str(move) for move in ai_moves]))) game.apply(game.PLAYER1, ai_moves) if game.is_finished(): break agent2.learn() #agent2.backprop() dice = game.roll_dice() if do_print: board.print() print("Dice for AI2 were {}.".format(dice)) ai_moves = agent2.move(dice) if do_print: print("Resulting moves: {}.".format(", ".join( [str(move) for move in ai_moves]))) game.apply(game.PLAYER2, ai_moves) winner = game.get_winner() if winner > 0: agent1.learn(np.array([1.0, 0.0])) agent2.learn(np.array([0.0, 1.0])) #agent1.backprop(np.array([1.0, 0.0])) #agent2.backprop(np.array([0.0, 1.0])) else: agent1.learn(np.array([0.0, 1.0])) agent2.learn(np.array([1.0, 0.0])) #agent1.backprop(np.array([0.0, 1.0])) #agent2.backprop(np.array([1.0, 0.0])) return winner, game.get_num_moves()