public TournamentRunner(IAgent player0, IAgent player1, IStartPlayerDeterminer startPlayerDeterminer) { _player0 = player0; _player1 = player1; _startPlayerDeterminer = startPlayerDeterminer; }
public GameRunner(IAgent player0, IAgent player1, IStartPlayerDeterminer startPlayerDeterminer) { _player0 = player0; _player1 = player1; _player0.Player = Player.Player0; _player1.Player = Player.Player1; _player0.IsTraining = false; _player1.IsTraining = false; _startPlayerDeterminer = startPlayerDeterminer; }
public Trainer(IAgent agent0, IAgent agent1, IStartPlayerDeterminer startPlayerDeterminer) { _agent0 = agent0; _agent1 = agent1; _agent0.IsTraining = true; _agent1.IsTraining = true; _agent0.Player = Player.Player0; _agent1.Player = Player.Player1; _startPlayerDeterminer = startPlayerDeterminer; }
private static void Train(IAgent agent0, IAgent agent1, IStartPlayerDeterminer startPlayerDeterminer, TimeSpan maxTrainingTime) { if (LimitTrainingTime) { var trainer = new TimeboxedTrainer(agent0, agent1, startPlayerDeterminer, maxTrainingTime); var result = trainer.Train(MaxTrainingEpisodes); Console.WriteLine($"Training result: {result}"); Console.WriteLine(); } else { var trainer = new Trainer(agent0, agent1, startPlayerDeterminer); trainer.Train(MaxTrainingEpisodes); } }
public TimeboxedTrainer(IAgent agent0, IAgent agent1, IStartPlayerDeterminer startPlayerDeterminer, TimeSpan maxTime) { _agent0 = agent0; _agent1 = agent1; _agent0.IsTraining = true; _agent1.IsTraining = true; _agent0.Player = Player.Player0; _agent1.Player = Player.Player1; _startPlayerDeterminer = startPlayerDeterminer; _maxTime = maxTime; _stopwatchAgent0 = new Stopwatch(); _stopwatchAgent1 = new Stopwatch(); }
public TickTackToe(IStartPlayerDeterminer startPlayerDeterminer) { _currentPlayer = startPlayerDeterminer.GetStartPlayer(); }