Exemplo n.º 1
0
        private static int FindRandom()
        {
            BestMove = null;
            var rndMoves = Helpers.GenerateRandom(24, 0, 23);
            foreach(var moveID in rndMoves)
            {
                var encodedMoveID = Board.Moves[moveID].ID;
                if (Board.Move(Board.Moves[moveID].ID))
                    return encodedMoveID;
            }

            return -1;
        }
Exemplo n.º 2
0
        private static int Iterate(Node node, int depth, int alpha, int beta, bool Player)
        {
            if (depth == 0 || node.IsTerminal(Player))
            {
                return node.GetTotalScore(Player);
            }

            if (Player == MaxPlayer)
            {
                foreach (Node child in node.Children(Player))
                {
                    int temp = Iterate(child, depth - 1, alpha, beta, !Player);
                    if (temp > alpha)
                    {
                        BestMove = child;
                        alpha = temp;
                    }

                }

                return alpha;
            }
            else
            {
                foreach (Node child in node.Children(Player))
                {
                    beta = Math.Min(beta, Iterate(child, depth - 1, alpha, beta, !Player));

                    if (beta < alpha)
                    {
                        break;
                    }
                }

                return beta;
            }
        }