Esempio n. 1
0
        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");
            }
        }
Esempio n. 2
0
        public void test3_alphabetaRecursive()
        {
            var gameTree = new GameTreeOld();

            var initialState = StateFactory.GetPawnStartingState(6, 6);
            var initialNode  = new Node(initialState, new Chess.Old.Move());

            var result = gameTree.AlphaBetaRecursive(initialNode, depth: 9, isMaximizingPlayer: true);

            var nextState = new State(initialState);

            nextState.MovePieceUnchecked(fromRank: 0, fromFile: 2, toRank: 1, toFile: 2);
            var nextNode = new Node(nextState, new Chess.Old.Move());

            var result2 = gameTree.AlphaBetaRecursive(nextNode, depth: 9, isMaximizingPlayer: false);

            nextState = new State(nextState);
            nextState.MovePieceUnchecked(fromRank: 5, fromFile: 3, toRank: 3, toFile: 3);
            nextNode = new Node(nextState, new Chess.Old.Move());

            var result3 = gameTree.AlphaBetaRecursive(nextNode, depth: 9, isMaximizingPlayer: true);
        }