コード例 #1
0
ファイル: GameTreeTests.cs プロジェクト: RMAReader/Chess
        public void test2_timings()
        {
            int maxDepth = 7;

            var gameTree = new GameTreeOld();

            var results = new List <string>();

            //for(int depth = 1; depth < maxDepth; depth++)
            //{
            //    var sw = System.Diagnostics.Stopwatch.StartNew();

            //    int count = gameTree.IteratePaths(new Node(0), depth).Count();
            //    long time = sw.ElapsedMilliseconds;

            //    results.Add($"depth:{depth}, count:{count}, time:{time}ms");
            //}

            //for (int depth = 1; depth < maxDepth; depth++)
            //{
            //    var sw = System.Diagnostics.Stopwatch.StartNew();

            //    int count = 0;
            //    for(int i=0; i<Math.Pow(30, depth-1); i++)
            //    {
            //        count++;
            //    }
            //    long time = sw.ElapsedMilliseconds;

            //    results.Add($"depth:{depth}, count:{count}, time:{time}ms");
            //}


            //for (int depth = 1; depth < maxDepth; depth++)
            //{
            //    var sw = System.Diagnostics.Stopwatch.StartNew();

            //    var r = gameTree.AlphaBeta(new Node(0), depth: depth, alpha: 1, beta: 1, isMaximizingPlayer: true);
            //    long time = sw.ElapsedMilliseconds;

            //    results.Add($"depth:{depth}, value:{r.Value}, time:{time}ms");
            //}

            for (int depth = 1; depth < maxDepth; depth++)
            {
                var initialState = StateFactory.GetDefaultStartingState();
                var initialNode  = new Node(initialState, new Chess.Old.Move());

                var sw = System.Diagnostics.Stopwatch.StartNew();

                var  r    = gameTree.AlphaBetaRecursive(initialNode, depth: depth - 1, isMaximizingPlayer: true);
                long time = sw.ElapsedMilliseconds;
                results.Add($"depth:{depth}, value:{r}, time:{time}ms");
            }
        }