private Point PositionSouthOfMe(IWorldSize worldSize) { if (point.Y == worldSize.MinY) { return(new Point(point.X, worldSize.YPositionSouthOfBoundary)); } return(new Point(point.X, point.Y - 1)); }
private Point PositionEastOfMe(IWorldSize worldSize) { if (point.X == worldSize.MaxX) { return(new Point(worldSize.XPositionEastOfBoundary, point.Y)); } return(new Point(point.X + 1, point.Y)); }
private Point PositionNorthOfMe(IWorldSize worldSize) { if (point.Y == worldSize.MaxY) { return(new Point(point.X, worldSize.YPositionNorthOfBoundary)); } return(new Point(point.X, point.Y + 1)); }
private static void Verify(IWorldSize world, string dropLocation, string command, string endLocation) { //Arrange var initialLocation = new Location(dropLocation); var expectedLocation = new Location(endLocation); var rover = new Rover(world, initialLocation); //Act rover.Move(command); //Assert Assert.Equal(expectedLocation, rover.Location); }
internal Location MoveForward(IWorldSize worldSize) { if (facing == Facing.North) { return(new Location(PositionNorthOfMe(worldSize), facing)); } if (facing == Facing.South) { return(new Location(PositionSouthOfMe(worldSize), facing)); } if (facing == Facing.East) { return(new Location(PositionEastOfMe(worldSize), facing)); } if (facing == Facing.West) { return(new Location(PositionWestOfMe(worldSize), facing)); } throw new InvalidOperationException(facing + " is not supported"); }
public Rover(IWorldSize worldSize, Location dropLocation) { this.worldSize = worldSize; Location = dropLocation; }