Example #1
0
 public Knight(BoardCoordinate initialLocation, ChessPieceColor owningPlayerOrientation) : base(initialLocation, owningPlayerOrientation)
 {
     this._allowedMoves = new List <ChessPieceMoveDefinition>();
     this._allowedMoves.Add(StandardMoveDefinitions.KnightStandardFileMoveDefinition(owningPlayerOrientation));
     this._allowedMoves.Add(StandardMoveDefinitions.KnightStandardRankMoveDefinition(owningPlayerOrientation));
     base.AlgebraicNotationName = "N";
 }
Example #2
0
 public King(BoardCoordinate initialLocation, ChessPieceColor owningPlayerOrientation) : base(initialLocation, owningPlayerOrientation)
 {
     this._allowedMoves = new List <ChessPieceMoveDefinition>();
     this._allowedMoves.Add(StandardMoveDefinitions.KingStandardFileMoveDefinition(owningPlayerOrientation));
     this._allowedMoves.Add(StandardMoveDefinitions.KingStandardRankMoveDefinition(owningPlayerOrientation));
     this._allowedMoves.Add(StandardMoveDefinitions.KingStandardDiagonalMoveDefinition(owningPlayerOrientation));
 }
Example #3
0
        public bool AttackTo(BoardCoordinate coordinate)
        {
            bool moved = false;

            this._allowedMoves.Add(StandardMoveDefinitions.PawnAttackMoveDefinition(this.OwningPlayerOrientation));

            moved = this.MoveTo(coordinate);

            this._allowedMoves.Remove(StandardMoveDefinitions.PawnAttackMoveDefinition(this.OwningPlayerOrientation));
            return(moved);
        }
Example #4
0
        public override bool MoveTo(BoardCoordinate coordinate)
        {
            bool isFirstMove = this.CurrentLocation == this.MoveHistory[0];
            bool hasMoved    = base.MoveTo(coordinate);

            if (isFirstMove && hasMoved)
            {
                this._allowedMoves.Remove(StandardMoveDefinitions.PawnInitialMoveDefinition(this.OwningPlayerOrientation));
                this._allowedMoves.Add(StandardMoveDefinitions.PawnStandardMoveDefinition(this.OwningPlayerOrientation));
            }

            return(hasMoved);
        }
Example #5
0
 public Pawn(BoardCoordinate initialCoordinate, ChessPieceColor owningPlayerOrientation) : base(initialCoordinate, owningPlayerOrientation)
 {
     this._allowedMoves = new List <ChessPieceMoveDefinition>();
     this._allowedMoves.Add(StandardMoveDefinitions.PawnInitialMoveDefinition(this.OwningPlayerOrientation));
 }