コード例 #1
0
        public IPiece Create(ColourOfPiece colour, KindOfPiece kind, bool isFirstMovie = true)
        {
            ICheckStrategyFactory checkStrategyFactory = new CheckStrategyFactory();
            ICheckStrategy        checkStrategy        = checkStrategyFactory.Create(kind, isFirstMovie);

            return(new ChessPiece(colour, kind, checkStrategy));
        }
コード例 #2
0
        private bool IsMovePossible(TypeOfField typeOfField, ColourOfPiece colour)
        {
            switch (typeOfField)
            {
            case TypeOfField.Empty:
                return(true);

            case TypeOfField.OutOfRange:
                return(false);

            case TypeOfField.WhitePiece:
                return(!IsColorTheSame(typeOfField, colour));

            case TypeOfField.BlackPiece:
                return(!IsColorTheSame(typeOfField, colour));

            default:
                throw new ApplicationException("nieznany typ");
            }
        }
コード例 #3
0
 public AdvancePiece(ColourOfPiece colour, KindOfPiece kind, ICheckStrategy checkStrategy)
     : base(colour, kind, checkStrategy)
 {
     IsFirstMove = true;
 }
コード例 #4
0
 private bool IsColorTheSame(TypeOfField typeOfField, ColourOfPiece colour)
 {
     return(typeOfField == TypeOfField.BlackPiece && colour == ColourOfPiece.Black ||
            typeOfField == TypeOfField.WhitePiece && colour == ColourOfPiece.White);
 }
コード例 #5
0
ファイル: PawnCheckStrategy.cs プロジェクト: niezg/ChessApp
        private List <string> CheckAttack(int yStep, int xStep, Position position, ChessboardModel chessboard, ColourOfPiece pieceColour)
        {
            position.Y += yStep;
            position.X += xStep;
            var typeOfField = chessboard.GetTypeOfField(position);

            if (typeOfField == TypeOfField.BlackPiece && pieceColour == ColourOfPiece.White ||
                typeOfField == TypeOfField.WhitePiece && pieceColour == ColourOfPiece.Black)
            {
                return new List <string>()
                       {
                           position.ToString()
                       }
            }
            ;
            else
            {
                return(new List <string>());
            }
        }
コード例 #6
0
ファイル: ChessPiece.cs プロジェクト: niezg/ChessApp
 public ChessPiece(ColourOfPiece colour, KindOfPiece kind, ICheckStrategy checkStrategy)
 {
     Colour        = colour;
     Kind          = kind;
     CheckStrategy = checkStrategy;
 }