/// <summary>
 /// Constructor
 /// </summary>
 public BishopRectangle(EnumPieceColor aPieceColor)
 {
     if (aPieceColor == EnumPieceColor.White)
         image = ReadImage("WHITEBISHOP");
     else
         image = ReadImage("BLACKBISHOP");
 }
 /// <summary>
 /// Construct a Chess Player
 /// </summary>
 /// <param name="aType"></param>
 /// <param name="aName"></param>
 /// <param name="aColor"></param>
 public ChessPlayer(EnumPlayerType aType, string aName, EnumPieceColor aColor)
 {
     isTurn = false;
     playerType = aType;
     name = aName;
     pieceColor = aColor;
     isCheck = false;
 }
        /// <summary>
        /// ChessPiece Constructor
        /// </summary>
        /// <param name="aPieceColor"></param>
        /// <param name="aPieceType"></param>
        /// <param name="aChessSquare"></param>
        internal ChessPiece(EnumPieceColor aPieceColor, EnumPieceType aPieceType, ChessSquare aChessSquare)
        {
            chessPieceColor = aPieceColor;
            chessPieceType = aPieceType;
            chessPieceID = (EnumPieceID)((int)chessPieceColor + (int)chessPieceType);

            chessSquare = aChessSquare;
            EnumSquareID sid = chessSquare.GetSquareID();
            ChessImageConstants.parserChessBoardSquares[sid] = chessPieceID;

            isEnabled = true;
        }
        /// <summary>
        /// ChessPiece Constructor
        /// </summary>
        /// <param name="aPieceColor"></param>
        /// <param name="aPieceType"></param>
        /// <param name="aChessSquare"></param>
        internal ChessPiece(EnumPieceColor aPieceColor, EnumPieceType aPieceType, ChessSquare aChessSquare)
        {
            chessPieceColor = aPieceColor;
            chessPieceType = aPieceType;
            chessPieceID = (EnumPieceID)((int)chessPieceColor + (int)chessPieceType);

            chessSquare = aChessSquare;
            EnumSquareID sid = chessSquare.GetSquareID();
            ChessImageConstants.parserChessBoardSquares[sid] = chessPieceID;

            isCastlingPossible = ((aPieceType == EnumPieceType.King) || ((aPieceType == EnumPieceType.Rook)));
            isEnabled = true;  // TODO was false
        }
        /// <summary>
        /// GetChessPieceRectangle by type and color 
        /// </summary>
        /// <param name="aPieceType"></param>
        /// <param name="aPieceColor"></param>
        /// <returns>ChessPieceRectangle</returns>
        public ChessPieceRectangle GetChessPieceRectangle(EnumPieceType aPieceType, EnumPieceColor aPieceColor)
        {
            switch(aPieceType)
            {
                case EnumPieceType.Pawn:
                     if (aPieceColor == EnumPieceColor.White)
                         return whitePawnRectangle;
                    else
                         return blackPawnRectangle;

                case EnumPieceType.Rook:
                    if (aPieceColor == EnumPieceColor.White)
                        return whiteRookRectangle;
                    else
                        return blackRookRectangle;

                case EnumPieceType.Knight:
                    if (aPieceColor == EnumPieceColor.White)
                        return whiteKnightRectangle;
                    else
                        return blackKnightRectangle;

                case EnumPieceType.Bishop:
                    if (aPieceColor == EnumPieceColor.White)
                        return whiteBishopRectangle;
                    else
                        return blackBishopRectangle;

                case EnumPieceType.Queen:
                    if (aPieceColor == EnumPieceColor.White)
                        return whiteQueenRectangle;
                    else
                        return blackQueenRectangle;

                case EnumPieceType.King:
                    if (aPieceColor == EnumPieceColor.White)
                        return whiteKingRectangle;
                    else
                        return blackKingRectangle;

                case EnumPieceType.None:
                    return null;
            }

            throw( new Exception("ChessPieceFactory.GetChessPieceRectangle : Unknown EnumPieceType") );
        }
        /// <summary>
        /// ChessPiece Constructor
        /// </summary>
        /// <param name="aChessPieceID"></param>
        internal ChessPiece(EnumPieceID aChessPieceID, ChessSquare aChessSquare)
        {
            chessSquare = aChessSquare;

            if (aChessPieceID == EnumPieceID.BlackKing)
            {
                chessPieceType = EnumPieceType.King;
                chessPieceColor = EnumPieceColor.Black;
            }
            else if (aChessPieceID == EnumPieceID.WhiteKing)
            {
                chessPieceType = EnumPieceType.King;
                chessPieceColor = EnumPieceColor.White;
            }

            chessPieceID = aChessPieceID;
            isEnabled = false;
        }
        /// <summary>
        /// ChessPiece Constructor
        /// </summary>
        /// <param name="aChessPieceID"></param>
        internal ChessPiece(EnumPieceID aChessPieceID, ChessSquare aChessSquare)
        {
            chessSquare = aChessSquare;

            if (aChessPieceID == EnumPieceID.BlackKing)
            {
                chessPieceType = EnumPieceType.King;
                chessPieceColor = EnumPieceColor.Black;
            }
            else if (aChessPieceID == EnumPieceID.WhiteKing)
            {
                chessPieceType = EnumPieceType.King;
                chessPieceColor = EnumPieceColor.White;
            }

            chessPieceID = aChessPieceID;

            isCastlingPossible = ((chessPieceType == EnumPieceType.King) || ((chessPieceType == EnumPieceType.Rook)));

            isEnabled = false;
        }
        /// <summary>
        /// CreateChessPiece by square piece type and piece color
        /// </summary>
        /// <param name="aChessSquare"></param>
        /// <param name="aChessPieceType"></param>
        /// <param name="aChessPieceColor"></param>
        /// <returns>ChessPiece</returns>
        private ChessPiece CreateChessPiece(ChessSquare aChessSquare, EnumPieceType aChessPieceType, EnumPieceColor aChessPieceColor)
        {
            ChessPiece chessPiece = new ChessPiece(aChessPieceColor, aChessPieceType, aChessSquare);
            EnumSquareID squareID = aChessSquare.GetSquareID();

            Point aLocation = new Point(aChessSquare.GetStartLocation().X + ChessImageConstants.ChessPieceLeft,
                aChessSquare.GetStartLocation().Y + ChessImageConstants.ChessPieceTop);

            chessPiece.SetStartLocation(aLocation);
            chessPiece.SetChessSquare(aChessSquare);

            aChessSquare.SetChessPiece(chessPiece);

            if (aChessPieceColor == EnumPieceColor.White)
            {
                whitePieceList.Add(chessPiece);
            }
            else
            {
                blackPieceList.Add(chessPiece);
            }
            return chessPiece;
        }
 /// <summary>
 /// Constructor
 /// </summary>
 public RookRectangle(EnumPieceColor aPieceColor)
 {
     if (aPieceColor == EnumPieceColor.White)
         image = ReadImage("WHITEROOK");
     else
         image = ReadImage("BLACKROOK");
 }
 /// <summary>
 /// Constructor
 /// </summary>
 public QueenRectangle(EnumPieceColor aPieceColor)
 {
     if (aPieceColor == EnumPieceColor.White)
         image = ReadImage("WHITEQUEEN");
     else
         image = ReadImage("BLACKQUEEN");
 }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="aPieceColor"></param>
 public PawnRectangle(EnumPieceColor aPieceColor)
 {
     if (aPieceColor == EnumPieceColor.White)
         image = ReadImage("WHITEPAWN");
     else
         image = ReadImage("BLACKPAWN");
 }
 /// <summary>
 /// Constructor
 /// </summary>
 public KnightRectangle(EnumPieceColor aPieceColor)
 {
     if (aPieceColor == EnumPieceColor.White)
         image = ReadImage("WHITEKNIGHT");
     else
         image = ReadImage("BLACKKNIGHT");
 }
 /// <summary>
 /// Constructor
 /// </summary>
 public KingRectangle(EnumPieceColor aPieceColor)
 {
     if (aPieceColor == EnumPieceColor.White)
         image = ReadImage("WHITEKING");
     else
         image = ReadImage("BLACKKING");
 }
Exemplo n.º 14
0
 /// <summary>
 /// SetPieceColor
 /// </summary>
 /// <param name="aChessPieceColor"></param>
 internal void SetPieceColor(EnumPieceColor aChessPieceColor)
 {
     chessPieceColor = aChessPieceColor;
 }