コード例 #1
0
ファイル: Form1.cs プロジェクト: tarik2281/TicTacToe
        private int Min(int player, int depth)
        {
            List <Draw> legalDraws = new List <Draw>();

            gameBoard.GetLegalDraws(player, ref legalDraws);
            if (depth == 0 || legalDraws.Count == 0)
            {
                return(Rate());
            }

            int minValue = int.MaxValue;

            foreach (Draw draw in legalDraws)
            {
                gameBoard.MakeDraw(draw.piece, draw.squareIndex);
                int value = Min((player + 1) % 2, depth - 1);
                gameBoard.UndoDraw();
                if (value < minValue)
                {
                    minValue = value;
                    if (depth == maxDepth)
                    {
                        currentAIDraw = draw;
                    }
                }
            }
            return(minValue);
        }