public static MoveResult[] EvaluateScenario(Scenario scenario) { #if DEBUG System.Diagnostics.Stopwatch swatch = System.Diagnostics.Stopwatch.StartNew(); #endif MoveGenerator[] moveGenerators = scenario.GetMoveGeneratorsByMoveTreeLevel(); MoveGenerator initialMoveGenerator = moveGenerators[0]; Move[] initialMoves = initialMoveGenerator.Generate(scenario, null); MoveResult[] moveResults = new MoveResult[initialMoves.Length]; for (int i = 0; i < moveResults.Length; i++) { Move initialMove = initialMoves[i]; MoveResult moveResult = initialMove.ExpandAndEvaluate(scenario, 1); moveResults[i] = moveResult; } #if DEBUG swatch.Stop(); AndrewTweddle.BattleCity.Core.Helpers.DebugHelper.LogDebugMessage( "ScenarioEvaluator", "Duration to expand moves for scenario {0}: {1}", scenario.GetType().Name, swatch.Elapsed); #endif return(moveResults); }