Exemple #1
0
        //method avoids repeating code in ReportMill method
        private bool MillLogic(Mill[] mills, Mill mill)
        {
            bool millAlreadyExist = false;

            //controles if the mill already exists
            for (int i = 0; i < 4; i++)
            {
                if (mills[i] != null)
                {
                    if (Mill.Equal(mills[i], mill))
                    {
                        millAlreadyExist = true;
                        break;
                    }
                }
            }
            //if not adds him to the array of mills and returns true for detecting a mill
            if (!millAlreadyExist)
            {
                for (int k = 0; k < 4; k++)
                {
                    if (mills[k] == null)
                    {
                        mills[k] = mill;
                        break;
                    }
                }
                return(true);
            }
            return(false);
        }
Exemple #2
0
 public static bool Equal(Mill mill1, Mill mill2)
 {
     if ((mill1.black == mill2.black) && (mill1.Stone1.Item1 == mill2.Stone1.Item1) &&
         (mill1.Stone1.Item2 == mill2.Stone1.Item2) && (mill1.Stone2.Item1 == mill2.Stone2.Item1) &&
         (mill1.Stone2.Item2 == mill2.Stone2.Item2) && (mill1.Stone3.Item1 == mill2.Stone3.Item1) &&
         (mill1.Stone3.Item2 == mill2.Stone3.Item2))
     {
         return(true);
     }
     return(false);
 }
Exemple #3
0
        private bool ReportMill(int j, int a, int b, int c, PlaceOnBoardIs[,] board, Mill[] whiteMills, Mill[] blackMills)
        {
            if ((board[a, j] == PlaceOnBoardIs.whiteOccupied) && (board[b, j] == PlaceOnBoardIs.whiteOccupied) &&
                (board[c, j] == PlaceOnBoardIs.whiteOccupied))
            {
                //creates the mill always
                Mill mill = new Mill(a, j, b, j, c, j, false);
                if (MillLogic(whiteMills, mill))
                {
                    return(true);
                }
            }
            else if ((board[a, j] == PlaceOnBoardIs.blackOccupied) && (board[b, j] == PlaceOnBoardIs.blackOccupied) &&
                     (board[c, j] == PlaceOnBoardIs.blackOccupied))
            {
                Mill mill = new Mill(a, j, b, j, c, j, true);
                if (MillLogic(blackMills, mill))
                {
                    return(true);
                }
            }

            if ((board[j, a] == PlaceOnBoardIs.whiteOccupied) && (board[j, b] == PlaceOnBoardIs.whiteOccupied) &&
                (board[j, c] == PlaceOnBoardIs.whiteOccupied))
            {
                Mill mill = new Mill(j, a, j, b, j, c, false);
                if (MillLogic(whiteMills, mill))
                {
                    return(true);
                }
            }
            else if ((board[j, a] == PlaceOnBoardIs.blackOccupied) && (board[j, b] == PlaceOnBoardIs.blackOccupied) &&
                     (board[j, c] == PlaceOnBoardIs.blackOccupied))
            {
                Mill mill = new Mill(j, a, j, b, j, c, true);
                if (MillLogic(blackMills, mill))
                {
                    return(true);
                }
            }
            return(false);
        }