コード例 #1
0
        private Game SimulateGame()
        {
            var p = GameParameters.Simulation(GetDeck("deck1.dec"), GetDeck("deck2.dec"),
                                              new SearchParameters(15, 2, SearchPartitioningStrategies.SingleThreaded));

            var game = new Game(p);

            game.Start(numOfTurns: 5);
            return(game);
        }
コード例 #2
0
ファイル: MatchSimulator.cs プロジェクト: longde123/grove
        private static void SimulateGame(Deck deck1, Deck deck2, SimulationResult result, int maxTurnsPerGame,
                                         int maxSearchDepth, int maxTargetsCount)
        {
            var stopwatch = new Stopwatch();

            var game = new Game(GameParameters.Simulation(deck1, deck2,
                                                          new SearchParameters(maxSearchDepth, maxTargetsCount, SearchPartitioningStrategies.SingleThreaded)));

            game.Ai.SearchStarted += delegate
            {
                result.TotalSearchCount++;
                stopwatch.Start();
            };

            game.Ai.SearchFinished += delegate
            {
                stopwatch.Stop();

                if (stopwatch.Elapsed > result.MaxSearchTime)
                {
                    result.MaxSearchTime = stopwatch.Elapsed;
                }

                stopwatch.Reset();
            };

            game.Start(numOfTurns: maxTurnsPerGame);

            result.TotalTurnCount += game.Turn.TurnCount;

            if (game.Players.BothHaveLost)
            {
                return;
            }

            if (game.Players.Player1.Score > -game.Players.Player2.Score)
            {
                result.Deck1WinCount++;
                return;
            }

            result.Deck2WinCount++;
            return;
        }