Example #1
0
            public override bool Validate(IMovementContext context)
            {
                var tower  = new RookPiece();
                var bishop = new BishopPiece();

                return(tower.Validate(context) && bishop.Validate(context));
            }
Example #2
0
            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));
            }
Example #3
0
            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);
            }
Example #4
0
            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);
            }
Example #5
0
            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)));
            }
Example #6
0
 public abstract bool Validate(IMovementContext context);