コード例 #1
0
 internal CheckersPlayer(string i_PlayerName, CheckersPiece.ePieceType i_PawnType, CheckersPiece.ePieceType i_KingType)
 {
     m_Name             = i_PlayerName;
     m_PawnType         = i_PawnType;
     m_KingType         = i_KingType;
     m_IsLegalMovesLeft = true;
 }
コード例 #2
0
        private void initilaizePlayerPieces(CheckersPlayer i_Player)
        {
            i_Player.PlayerPieces = new List <CheckersPiece>();

            foreach (CheckersSquare square in m_GameBoard.CheckersGameBoard)
            {
                if (square.Piece != null)
                {
                    CheckersPiece.ePieceType pieceType = square.Piece.PieceType;
                    if (pieceType == i_Player.PawnType)
                    {
                        i_Player.PlayerPieces.Add(square.Piece);
                    }
                }
            }
        }
コード例 #3
0
        private void initLPieceLocations(CheckersPiece.ePieceType i_PieceType)
        {
            int          sumOfRowsToLocate = (r_BoardSize / 2) - 1;
            CheckersMove currentMove       = new CheckersMove(this);

            for (int row = 0; row < sumOfRowsToLocate; row++)
            {
                int currentRow    = (i_PieceType == CheckersPiece.ePieceType.X) ? row + sumOfRowsToLocate + 2 : row;
                int curretnColumn = (currentRow % 2 == 0) ? 1 : 0;

                for (int column = curretnColumn; column < r_BoardSize; column += 2)
                {
                    r_CheckersBoard[currentRow, column].Piece = new CheckersPiece(i_PieceType, new int[2] {
                        currentRow, column
                    });
                    currentMove.UpdatePossibleSimpleMoves(r_CheckersBoard[currentRow, column].Piece);
                }
            }
        }
コード例 #4
0
        private bool isValidRowMove(int i_TypeMove, int i_CurrentRow, int i_TargetRow, CheckersPiece.ePieceType i_PieceType)
        {
            bool isValidTargetRow;

            if (i_PieceType == CheckersPiece.ePieceType.O)
            {
                isValidTargetRow = i_TargetRow == i_CurrentRow + i_TypeMove;
            }
            else if (i_PieceType == CheckersPiece.ePieceType.X)
            {
                isValidTargetRow = i_TargetRow == i_CurrentRow - i_TypeMove;
            }
            else
            {
                isValidTargetRow = (i_TargetRow == i_CurrentRow + i_TypeMove) || (i_TargetRow == i_CurrentRow - i_TypeMove);
            }

            return(isValidTargetRow);
        }