public override bool Validate(IMovementContext context) { var tower = new RookPiece(); var bishop = new BishopPiece(); return(tower.Validate(context) && bishop.Validate(context)); }
public override bool Validate(IMovementContext context) { var direction = context.Color == PieceColor.White ? 1 : -1; var sourcePosition = context.Color == PieceColor.White ? 2 : 7; //Validation if (context.Position.Row == context.Target.Row) { return(false); } if ((context.Position.Row == sourcePosition) && ((context.Position.Row + (direction * 2)) != context.Target.Row) && ((context.Position.Row + direction != context.Target.Row))) { return(false); } if ((context.Position.Row != sourcePosition) && (context.Position.Row + direction) != context.Target.Row) { return(false); } if ((context.Position.Column == context.Target.Column) && context.Target.Piece != null) { return(false); } if ((context.Position.Column != context.Target.Column) && Math.Abs(context.Position.Column - context.Target.Column) != 1) { return(false); } return(this.IsValidLinearMovement(context.Position, context.Target)); }
public override bool Validate(IMovementContext context) { if (context.Position.Row == context.Target.Row || context.Position.Column == context.Target.Column) { return(this.IsValidLinearMovement(context.Position, context.Target)); } return(false); }
public override bool Validate(IMovementContext context) { if ((context.Position.Row != context.Target.Row) && (context.Position.Column != context.Target.Column)) { bool isValidDiagonalMovement = context.Position.IsDiagonalTo(context.Target); bool isValidLinearMovement = this.IsValidLinearMovement(context.Position, context.Target); return(isValidDiagonalMovement && isValidLinearMovement); } return(false); }
public override bool Validate(IMovementContext context) { var moveDeltas = new List <Tuple <int, int> > { new Tuple <int, int>(1, 0), new Tuple <int, int>(1, 1), new Tuple <int, int>(1, -1), new Tuple <int, int>(0, 1), new Tuple <int, int>(0, -1), new Tuple <int, int>(-1, 0), new Tuple <int, int>(-1, 1), new Tuple <int, int>(-1, -1) }; return(moveDeltas.Any(d => MatchMove(context.Position, context.Target, d.Item1, d.Item2))); }
public abstract bool Validate(IMovementContext context);