public void Update(BattleSimulation.Result result)
		{
			Runs++;
			Turns += result.Turns;
			Points += result.Points0;
			Merge(result.Stats0);

			switch (result.Outcome)
			{
				case BattleSimulation.Outcome.Win: Wins++;break;
				case BattleSimulation.Outcome.Draw: Draws++; break;
				case BattleSimulation.Outcome.Loss: Losses++; break;
			}
		}
Ejemplo n.º 2
0
        private void RunSimulation(BotData bot0, BotData bot1, MT19937Generator rnd)
        {
            Console.Write("\r{0:d\\.hh\\:mm\\:ss} {1:#,##0} ({2:0.00} /sec) Last ID: {3}  ",
                          sw.Elapsed,
                          Simulations,
                          Simulations / sw.Elapsed.TotalSeconds,
                          Bots.LastId);

            var simulation = new BattleSimulation(bot0, bot1, SearchDepth);
            var result     = simulation.Run(rnd, LogGames);

            Results.Enqueue(new BattlePairing(bot0, bot1)
            {
                Result = result
            });

            lock (lockElo)
            {
                Simulations++;
            }
        }
		private void RunSimulation(BotData bot0, BotData bot1, MT19937Generator rnd)
		{
			Console.Write("\r{0:d\\.hh\\:mm\\:ss} {1:#,##0} ({2:0.00} /sec) Last ID: {3}  ",
				sw.Elapsed,
				Simulations,
				Simulations / sw.Elapsed.TotalSeconds,
				Bots.LastId);

			var simulation = new BattleSimulation(bot0, bot1, SearchDepth);
			var result = simulation.Run(rnd, LogGames);

			Results.Enqueue(new BattlePairing(bot0, bot1) { Result = result });

			lock (lockElo)
			{
				Simulations++;
			}
		}