private static BoardLocation SafeCreate(int x, int y) { if (ChessGame.OutOfBounds(y)) { return(null); } if (ChessGame.OutOfBounds(x)) { return(null); } return(BoardLocation.At(x, y)); }
public static BoardLocation MoveRight(this BoardLocation location, Colours colour, int squares = 1) => SafeCreate(location.X + (ChessGame.DirectionModifierFor(colour) * squares), location.Y);
public static BoardLocation MoveForward(this BoardLocation location, Colours colour, int squares = 1) => SafeCreate(location.X, location.Y + ChessGame.DirectionModifierFor(colour) * squares);