1
0
Fork 0

move backward successfully

This commit is contained in:
Xavier Fontanet 2024-06-20 19:04:18 +02:00
parent 6906fec8a1
commit 72ca8a2629
3 changed files with 21 additions and 1 deletions

View File

@ -3,7 +3,16 @@ package cat.hack3.codingtests.marsrover;
import static cat.hack3.codingtests.marsrover.MarsMap.Direction.*;
public class MarsMap {
public enum Direction {NORTH, SOUTH, EAST, WEST}
public enum Direction {NORTH, SOUTH, EAST, WEST;
public Direction reversed() {
return switch (this) {
case NORTH -> SOUTH;
case SOUTH -> NORTH;
case EAST -> WEST;
case WEST -> EAST;
};
}
}
private final int width;
private final int height;

View File

@ -15,6 +15,10 @@ public class MarsRover {
return currentCoordinates.updatePositionTowards(currentDirection);
}
public Coordinates moveBackwards() {
return currentCoordinates.updatePositionTowards(currentDirection.reversed());
}
public MarsMap.Direction turnLeft() {
currentDirection = marsMap.changeDirectionToLeft(currentDirection);
return currentDirection;

View File

@ -37,6 +37,13 @@ public class MarsRoverTest {
assertEquals(rover.getCurrentDirection(), SOUTH);
}
@Test
public void stepBackwards() {
Coordinates currentPosition = rover.moveBackwards();
assertEquals(currentPosition, Coordinates.of(1, 3));
assertEquals(rover.getCurrentDirection(), SOUTH);
}
@Test
public void turnLef() {
Direction currentDirection = rover.turnLeft();