コード例 #1
0
        internal CheckerSquare[] GetCheckerSquares(int i_PlayerID)
        {
            int k    = 0;
            int size = i_PlayerID == 0 ? m_NumX : m_NumO;

            CheckerSquare[] cSquare = new CheckerSquare[size];
            for (int i = 0; i < m_Size; i++)
            {
                for (int j = 0; j < m_Size; j++)
                {
                    if (i_PlayerID == 1)
                    {
                        if (m_Table[i, j].m_CheckerMan.m_Type == CheckersMan.eType.O || m_Table[i, j].m_CheckerMan.m_Type == CheckersMan.eType.U)
                        {
                            cSquare[k++] = m_Table[i, j];
                        }
                    }
                    else
                    {
                        if (m_Table[i, j].m_CheckerMan.m_Type == CheckersMan.eType.K || m_Table[i, j].m_CheckerMan.m_Type == CheckersMan.eType.X)
                        {
                            cSquare[k++] = m_Table[i, j];
                        }
                    }
                }
            }

            return(cSquare);
        }
コード例 #2
0
        internal bool isLegalMove(string i_MoveCommand, ref Player i_MovePlayer)
        {
            int[]         startPoint    = getStartPoint(i_MoveCommand);
            int[]         endPoint      = getEndPoint(i_MoveCommand);
            CheckerSquare currentSquare = m_CheckersTable.m_Table[startPoint[0], startPoint[1]];
            CheckerSquare targetSquare  = m_CheckersTable.m_Table[endPoint[0], endPoint[1]];

            // checks if the squares are inside the border of the table
            bool firstCheck = isSquaresInBorder(currentSquare, targetSquare);

            firstCheck = firstCheck && (currentSquare.m_CheckerMan.m_Type == i_MovePlayer.m_FirstType || currentSquare.m_CheckerMan.m_Type == i_MovePlayer.m_SecondType);

            // checks if currentsquare is occupied and the target square isnt
            bool secondCheck = currentSquare.isOccupied() && !targetSquare.isOccupied();

            // check if the move is diagonal, otherwise if its eating move
            bool thirdCheck  = false;
            bool fourthCheck = false;

            if (firstCheck && secondCheck)
            {
                thirdCheck = isDiagonalMove(currentSquare, targetSquare);
                if (isEatMove(currentSquare, targetSquare))
                {
                    CheckerSquare SquareToFree = null;
                    fourthCheck = isLegalEat(currentSquare, targetSquare, ref SquareToFree);
                }
            }

            return(firstCheck && secondCheck && (thirdCheck || fourthCheck));
        }
コード例 #3
0
        internal string canEatAfterEat(CheckerSquare i_Square)
        {
            string[] possibleMoves = getPossibleMoves(i_Square);
            string   eatMove       = string.Empty;

            for (int i = 0; i < possibleMoves.Length; i++)
            {
                int[]         startPoint    = getStartPoint(possibleMoves[i]);
                int[]         endPoint      = getEndPoint(possibleMoves[i]);
                CheckerSquare currentSquare = m_CheckersTable.m_Table[startPoint[0], startPoint[1]];
                CheckerSquare targetSquare  = m_CheckersTable.m_Table[endPoint[0], endPoint[1]];
                if (isEatMove(currentSquare, targetSquare))
                {
                    CheckerSquare SquareToFree = null;
                    bool          isLegEat     = isLegalEat(currentSquare, targetSquare, ref SquareToFree);
                    if (isLegEat)
                    {
                        eatMove = possibleMoves[i];
                        break;
                    }
                }
            }

            return(eatMove);
        }
コード例 #4
0
        private bool canOEatDownSideRight(CheckerSquare i_CurrentSquare, CheckerSquare i_TargetSquare)
        {
            bool canEat = (m_CheckersTable.m_Table[i_CurrentSquare.m_Posx + 1, i_CurrentSquare.m_Posy + 1].m_CheckerMan.m_Type == CheckersMan.eType.X ||
                           m_CheckersTable.m_Table[i_CurrentSquare.m_Posx + 1, i_CurrentSquare.m_Posy + 1].m_CheckerMan.m_Type == CheckersMan.eType.K) &&
                          m_CheckersTable.m_Table[i_CurrentSquare.m_Posx + 2, i_CurrentSquare.m_Posy + 2].m_CheckerMan.m_Type == CheckersMan.eType.None;

            return(canEat);
        }
コード例 #5
0
        private bool canXEatUpSideRight(CheckerSquare i_CurrentSquare, CheckerSquare i_TargetSquare)
        {
            bool canEat = (m_CheckersTable.m_Table[i_CurrentSquare.m_Posx - 1, i_CurrentSquare.m_Posy + 1].m_CheckerMan.m_Type == CheckersMan.eType.O ||
                           m_CheckersTable.m_Table[i_CurrentSquare.m_Posx - 1, i_CurrentSquare.m_Posy + 1].m_CheckerMan.m_Type == CheckersMan.eType.U) &&
                          m_CheckersTable.m_Table[i_CurrentSquare.m_Posx - 2, i_CurrentSquare.m_Posy + 2].m_CheckerMan.m_Type == CheckersMan.eType.None;

            return(canEat);
        }
コード例 #6
0
        private bool canUEatUpSideLeft(CheckerSquare i_CurrentSquare, CheckerSquare i_TargetSquare)
        {
            bool canEat = (m_CheckersTable.m_Table[i_CurrentSquare.m_Posx - 1, i_CurrentSquare.m_Posy - 1].m_CheckerMan.m_Type == CheckersMan.eType.X ||
                           m_CheckersTable.m_Table[i_CurrentSquare.m_Posx - 1, i_CurrentSquare.m_Posy - 1].m_CheckerMan.m_Type == CheckersMan.eType.K) &&
                          m_CheckersTable.m_Table[i_CurrentSquare.m_Posx - 2, i_CurrentSquare.m_Posy - 2].m_CheckerMan.m_Type == CheckersMan.eType.None;

            return(canEat);
        }
コード例 #7
0
        private bool canKEatDownSideLeft(CheckerSquare i_CurrentSquare, CheckerSquare i_TargetSquare)
        {
            bool canEat = (m_CheckersTable.m_Table[i_CurrentSquare.m_Posx + 1, i_CurrentSquare.m_Posy - 1].m_CheckerMan.m_Type == CheckersMan.eType.O ||
                           m_CheckersTable.m_Table[i_CurrentSquare.m_Posx + 1, i_CurrentSquare.m_Posy - 1].m_CheckerMan.m_Type == CheckersMan.eType.U) &&
                          m_CheckersTable.m_Table[i_CurrentSquare.m_Posx + 2, i_CurrentSquare.m_Posy - 2].m_CheckerMan.m_Type == CheckersMan.eType.None;

            return(canEat);
        }
コード例 #8
0
        internal bool isEatMove(string i_MoveMessage)
        {
            int[]         startPoint    = getStartPoint(i_MoveMessage);
            int[]         endPoint      = getEndPoint(i_MoveMessage);
            CheckerSquare currentSquare = m_CheckersTable.m_Table[startPoint[0], startPoint[1]];
            CheckerSquare targetSquare  = m_CheckersTable.m_Table[endPoint[0], endPoint[1]];

            return(isSquaresInBorder(currentSquare, targetSquare) && isEatMove(currentSquare, targetSquare));
        }
コード例 #9
0
        private bool isLegalEatForMen(CheckerSquare i_CurrentSquare, CheckerSquare i_TargetSquare, ref CheckerSquare i_SquareToFree)
        {
            bool isLegalForMen = false;

            if (i_CurrentSquare.m_CheckerMan.m_Type == CheckersMan.eType.X)
            {
                isLegalForMen = isLegalEatForX(i_CurrentSquare, i_TargetSquare, ref i_SquareToFree);
            }
            else
            {
                isLegalForMen = isLegalEatForO(i_CurrentSquare, i_TargetSquare, ref i_SquareToFree);
            }

            return(isLegalForMen);
        }
コード例 #10
0
        private bool isLegalEatForKings(CheckerSquare i_CurrentSquare, CheckerSquare i_TargetSquare, ref CheckerSquare i_SquareToFree)
        {
            bool isLegalEatForKing = false;

            if (i_CurrentSquare.m_CheckerMan.m_Type == CheckersMan.eType.K)
            {
                isLegalEatForKing = isLegalEatForK(i_CurrentSquare, i_TargetSquare, ref i_SquareToFree);
            }
            else
            {
                isLegalEatForKing = isLegalEatForU(i_CurrentSquare, i_TargetSquare, ref i_SquareToFree);
            }

            return(isLegalEatForKing);
        }
コード例 #11
0
        internal bool isLegalEat(CheckerSquare i_CurrentSquare, CheckerSquare i_TargetSquare, ref CheckerSquare i_SquareToFree)
        {
            bool isLegalEat = false;

            if (i_CurrentSquare.m_CheckerMan.m_Type == CheckersMan.eType.K || i_CurrentSquare.m_CheckerMan.m_Type == CheckersMan.eType.U)
            {
                isLegalEat = isLegalEatForKings(i_CurrentSquare, i_TargetSquare, ref i_SquareToFree);
            }
            else
            {
                isLegalEat = isLegalEatForMen(i_CurrentSquare, i_TargetSquare, ref i_SquareToFree);
            }

            return(isLegalEat);
        }
コード例 #12
0
        private string[] getPossibleMovesAfterEat(CheckerSquare i_CurrentSquare)
        {
            string[] possibleMoves;

            possibleMoves    = new string[8];
            possibleMoves[0] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx + 1, i_CurrentSquare.m_Posy + 1);
            possibleMoves[1] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx + 1, i_CurrentSquare.m_Posy - 1);
            possibleMoves[2] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx - 1, i_CurrentSquare.m_Posy + 1);
            possibleMoves[3] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx - 1, i_CurrentSquare.m_Posy - 1);
            possibleMoves[4] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx + 2, i_CurrentSquare.m_Posy + 2);
            possibleMoves[5] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx + 2, i_CurrentSquare.m_Posy - 2);
            possibleMoves[6] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx - 2, i_CurrentSquare.m_Posy + 2);
            possibleMoves[7] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx - 2, i_CurrentSquare.m_Posy - 2);

            return(possibleMoves);
        }
コード例 #13
0
        private bool isLegalEatForO(CheckerSquare i_CurrentSquare, CheckerSquare i_TargetSquare, ref CheckerSquare i_SquareToFree)
        {
            bool isLegalForMen = false;

            if (i_CurrentSquare.m_Posx < m_TableSize - 2)
            {
                if (i_CurrentSquare.m_Posy < i_TargetSquare.m_Posy && i_CurrentSquare.m_Posy < m_TableSize - 2)
                {
                    isLegalForMen  = canOEatDownSideRight(i_CurrentSquare, i_TargetSquare);
                    i_SquareToFree = m_CheckersTable.m_Table[i_CurrentSquare.m_Posx + 1, i_CurrentSquare.m_Posy + 1];
                }
                else if (i_CurrentSquare.m_Posy > i_TargetSquare.m_Posy && i_CurrentSquare.m_Posy > 1)
                {
                    isLegalForMen  = canOEatDownSideLeft(i_CurrentSquare, i_TargetSquare);
                    i_SquareToFree = m_CheckersTable.m_Table[i_CurrentSquare.m_Posx + 1, i_CurrentSquare.m_Posy - 1];
                }
            }

            return(isLegalForMen);
        }
コード例 #14
0
        private void initTable()
        {
            int numOfMen = calcNumOfMen();

            m_Table = new CheckerSquare[m_Size, m_Size];

            initUpperSide();

            // space of 2 lines between the oponnents
            CheckersMan cMan = new CheckersMan(CheckersMan.eType.None);

            for (int i = (m_Size - 1) / 2; i < ((m_Size / 2) + 1); i++)
            {
                for (int j = 0; j < m_Size; j++)
                {
                    m_Table[i, j] = new CheckerSquare(i, j, cMan);
                }
            }

            initBottomSide();
        }
コード例 #15
0
        private bool isEatMove(CheckerSquare i_CurrentSquare, CheckerSquare i_TargetSquare)
        {
            bool isEatMove = false;

            if (i_CurrentSquare.m_CheckerMan.m_Type == CheckersMan.eType.X)
            {
                isEatMove = i_CurrentSquare.m_Posx == (i_TargetSquare.m_Posx + 2);
            }
            else if (!m_Player.m_JustAte && i_CurrentSquare.m_CheckerMan.m_Type == CheckersMan.eType.O)
            {
                isEatMove = i_CurrentSquare.m_Posx == (i_TargetSquare.m_Posx - 2);
            }
            else
            {
                isEatMove = Math.Abs(i_CurrentSquare.m_Posx - i_TargetSquare.m_Posx) == 2;
            }

            isEatMove = isEatMove && Math.Abs(i_CurrentSquare.m_Posy - i_TargetSquare.m_Posy) == 2;

            return(isEatMove);
        }
コード例 #16
0
        private bool isDiagonalMove(CheckerSquare i_CurrentSquare, CheckerSquare i_TargetSquare)
        {
            bool isDiagonal = false;

            if (i_CurrentSquare.m_CheckerMan.m_Type == CheckersMan.eType.X)
            {
                isDiagonal = i_CurrentSquare.m_Posx == (i_TargetSquare.m_Posx + 1);
            }
            else if (i_CurrentSquare.m_CheckerMan.m_Type == CheckersMan.eType.O)
            {
                isDiagonal = i_CurrentSquare.m_Posx == (i_TargetSquare.m_Posx - 1);
            }
            else
            {
                isDiagonal = Math.Abs(i_CurrentSquare.m_Posx - i_TargetSquare.m_Posx) == 1;
            }

            isDiagonal = isDiagonal && Math.Abs(i_CurrentSquare.m_Posy - i_TargetSquare.m_Posy) == 1;

            return(isDiagonal);
        }
コード例 #17
0
        // perform a move //
        internal void move(string i_MoveCommand, Player i_Player, bool i_punish)
        {
            CheckersLogic cLogic = new CheckersLogic(this, i_Player);

            int[]         startPoint    = cLogic.getStartPoint(i_MoveCommand);
            int[]         endPoint      = cLogic.getEndPoint(i_MoveCommand);
            CheckerSquare currentSquare = m_Table[startPoint[0], startPoint[1]];
            CheckerSquare targetSquare  = m_Table[endPoint[0], endPoint[1]];
            CheckerSquare SquareToFree  = null;

            // make the move !
            if (cLogic.isLegalEat(currentSquare, targetSquare, ref SquareToFree))
            {
                // perform the eat
                if (SquareToFree.m_CheckerMan.returnType().Equals(" K ") || SquareToFree.m_CheckerMan.returnType().Equals(" X "))
                {
                    m_NumX--;
                }
                else
                {
                    m_NumO--;
                }

                SquareToFree.free();
            }
            if ((targetSquare.m_Posx == 0 || targetSquare.m_Posx == m_Size - 1) && currentSquare.m_CheckerMan.m_Type != CheckersMan.eType.K && currentSquare.m_CheckerMan.m_Type != CheckersMan.eType.U)
            {
                if (currentSquare.m_CheckerMan.m_Type == CheckersMan.eType.X)
                {
                    currentSquare.m_CheckerMan = new CheckersMan(CheckersMan.eType.K);
                }
                else if (currentSquare.m_CheckerMan.m_Type == CheckersMan.eType.O)
                {
                    currentSquare.m_CheckerMan = new CheckersMan(CheckersMan.eType.U);
                }
            }

            targetSquare.m_CheckerMan         = new CheckersMan(currentSquare.m_CheckerMan.m_Type);
            currentSquare.m_CheckerMan.m_Type = CheckersMan.eType.None;
        }
コード例 #18
0
        private bool isLegalEatForK(CheckerSquare i_CurrentSquare, CheckerSquare i_TargetSquare, ref CheckerSquare i_SquareToFree)
        {
            bool isLegalEatForKing = false;

            // check what kind of eat is it
            if (i_CurrentSquare.m_Posx == i_TargetSquare.m_Posx + 2)
            {
                if (i_CurrentSquare.m_Posx > 1)
                {
                    if (i_CurrentSquare.m_Posy < i_TargetSquare.m_Posy && i_CurrentSquare.m_Posy < m_TableSize - 2)
                    {
                        isLegalEatForKing = canXEatUpSideRight(i_CurrentSquare, i_TargetSquare);
                        i_SquareToFree    = m_CheckersTable.m_Table[i_CurrentSquare.m_Posx - 1, i_CurrentSquare.m_Posy + 1];
                    }
                    else if (i_CurrentSquare.m_Posy > i_TargetSquare.m_Posy && i_CurrentSquare.m_Posy > 1)
                    {
                        isLegalEatForKing = canXEatUpSideLeft(i_CurrentSquare, i_TargetSquare);
                        i_SquareToFree    = m_CheckersTable.m_Table[i_CurrentSquare.m_Posx - 1, i_CurrentSquare.m_Posy - 1];
                    }
                }
            }
            else
            {
                if (i_CurrentSquare.m_Posx < m_TableSize - 2)
                {
                    if (i_CurrentSquare.m_Posy < i_TargetSquare.m_Posy && i_CurrentSquare.m_Posy < m_TableSize - 2)
                    {
                        isLegalEatForKing = canKEatDownSideRight(i_CurrentSquare, i_TargetSquare);
                        i_SquareToFree    = m_CheckersTable.m_Table[i_CurrentSquare.m_Posx + 1, i_CurrentSquare.m_Posy + 1];
                    }
                    else if (i_CurrentSquare.m_Posy > i_TargetSquare.m_Posy && i_CurrentSquare.m_Posy > 1)
                    {
                        isLegalEatForKing = canKEatDownSideLeft(i_CurrentSquare, i_TargetSquare);
                        i_SquareToFree    = m_CheckersTable.m_Table[i_CurrentSquare.m_Posx + 1, i_CurrentSquare.m_Posy - 1];
                    }
                }
            }

            return(isLegalEatForKing);
        }
コード例 #19
0
        internal string[] getPossibleMoves(CheckerSquare i_CurrentSquare)
        {
            string[] possibleMoves;

            if (i_CurrentSquare.m_CheckerMan.m_Type == CheckersMan.eType.K || i_CurrentSquare.m_CheckerMan.m_Type == CheckersMan.eType.U)
            {
                possibleMoves    = new string[8];
                possibleMoves[0] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx + 1, i_CurrentSquare.m_Posy + 1);
                possibleMoves[1] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx + 1, i_CurrentSquare.m_Posy - 1);
                possibleMoves[2] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx - 1, i_CurrentSquare.m_Posy + 1);
                possibleMoves[3] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx - 1, i_CurrentSquare.m_Posy - 1);
                possibleMoves[4] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx + 2, i_CurrentSquare.m_Posy + 2);
                possibleMoves[5] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx + 2, i_CurrentSquare.m_Posy - 2);
                possibleMoves[6] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx - 2, i_CurrentSquare.m_Posy + 2);
                possibleMoves[7] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx - 2, i_CurrentSquare.m_Posy - 2);
            }
            else if (i_CurrentSquare.m_CheckerMan.m_Type == CheckersMan.eType.X)
            {
                possibleMoves    = new string[6];
                possibleMoves[0] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx - 1, i_CurrentSquare.m_Posy + 1);
                possibleMoves[1] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx - 1, i_CurrentSquare.m_Posy - 1);
                possibleMoves[2] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx + 2, i_CurrentSquare.m_Posy + 2);
                possibleMoves[3] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx + 2, i_CurrentSquare.m_Posy - 2);
                possibleMoves[4] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx - 2, i_CurrentSquare.m_Posy + 2);
                possibleMoves[5] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx - 2, i_CurrentSquare.m_Posy - 2);
            }
            else
            {
                possibleMoves    = new string[6];
                possibleMoves[0] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx + 1, i_CurrentSquare.m_Posy + 1);
                possibleMoves[1] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx + 1, i_CurrentSquare.m_Posy - 1);
                possibleMoves[2] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx + 2, i_CurrentSquare.m_Posy + 2);
                possibleMoves[3] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx + 2, i_CurrentSquare.m_Posy - 2);
                possibleMoves[4] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx - 2, i_CurrentSquare.m_Posy + 2);
                possibleMoves[5] = createMoveFromIndices(i_CurrentSquare.m_Posx, i_CurrentSquare.m_Posy, i_CurrentSquare.m_Posx - 2, i_CurrentSquare.m_Posy - 2);
            }

            return(possibleMoves);
        }
コード例 #20
0
        private void initUpperSide()
        {
            CheckersMan cMan;

            // occupy the squares on the upper side of the table
            for (int i = 0; i < ((m_Size - 1) / 2); i++)
            {
                for (int j = 0; j < m_Size; j++)
                {
                    if ((i + j) % 2 == 1)
                    {
                        cMan          = new CheckersMan(CheckersMan.eType.O);
                        m_Table[i, j] = new CheckerSquare(i, j, cMan);
                    }
                    else
                    {
                        cMan          = new CheckersMan(CheckersMan.eType.None);
                        m_Table[i, j] = new CheckerSquare(i, j, cMan);
                    }
                }
            }
        }
コード例 #21
0
        private void initBottomSide()
        {
            CheckersMan cMan;
            int         bottomSide = (m_Size / 2) + 1;

            // put men on the bottom side of the table
            for (int i = bottomSide; i < m_Size; i++)
            {
                for (int j = 0; j < m_Size; j++)
                {
                    if ((i + j) % 2 == 1)
                    {
                        cMan          = new CheckersMan(CheckersMan.eType.X);
                        m_Table[i, j] = new CheckerSquare(i, j, cMan);
                    }
                    else
                    {
                        cMan          = new CheckersMan(CheckersMan.eType.None);
                        m_Table[i, j] = new CheckerSquare(i, j, cMan);
                    }
                }
            }
        }
コード例 #22
0
 private bool isSquaresInBorder(CheckerSquare i_CurrentSquare, CheckerSquare i_TargetSquare)
 {
     return(i_CurrentSquare != null && i_TargetSquare != null);
 }