Пример #1
0
        public TAction Search(TState state, IAdversarialSearchProblem <TState, TAction> problem)
        {
            this.problem = problem;

            searchPlayer = problem.Player(state);

            var a = default(TAction);

            var alpha = double.NegativeInfinity;

            var actions = problem.Actions(state);

            foreach (var action in actions)
            {
                var vector = MinValue(problem.Result(state, action));

                //var min = Minimax(Problem.Result(state, action));

                if (vector > alpha)
                {
                    alpha = vector;
                    a     = action;
                }
            }

            return(a);
        }