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"; }
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)); }
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); }
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); }
public Pawn(BoardCoordinate initialCoordinate, ChessPieceColor owningPlayerOrientation) : base(initialCoordinate, owningPlayerOrientation) { this._allowedMoves = new List <ChessPieceMoveDefinition>(); this._allowedMoves.Add(StandardMoveDefinitions.PawnInitialMoveDefinition(this.OwningPlayerOrientation)); }