R: mikado (heading enum)
This commit is contained in:
parent
ab064c71f7
commit
61e293ee18
4 changed files with 42 additions and 20 deletions
|
|
@ -6,7 +6,7 @@ class Rover {
|
|||
if (command.size >= ROVER_MINIMUM_NEEDED_COMMANDS) {
|
||||
state.positionX = command[ROVER_STARTING_POSITION_X].toInt()
|
||||
state.positionY = command[ROVER_STARTING_POSITION_Y].toInt()
|
||||
state.heading = command[ROVER_FACING_DIRECTION][ROVER_COMMANDLIST_DIRECTION]
|
||||
state.heading = Heading.from(command[ROVER_FACING_DIRECTION][ROVER_COMMANDLIST_DIRECTION]) ?: Heading.NORTH
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -22,28 +22,28 @@ class Rover {
|
|||
|
||||
private fun move() {
|
||||
when (state.heading) {
|
||||
HEADING_EAST -> state.positionX++
|
||||
HEADING_SOUTH -> state.positionY--
|
||||
HEADING_WEST -> state.positionX--
|
||||
HEADING_NORTH -> state.positionY++
|
||||
Heading.EAST -> state.positionX++
|
||||
Heading.SOUTH -> state.positionY--
|
||||
Heading.WEST -> state.positionX--
|
||||
Heading.NORTH -> state.positionY++
|
||||
}
|
||||
}
|
||||
|
||||
private fun turnRight() {
|
||||
when (state.heading) {
|
||||
HEADING_EAST -> state.heading = HEADING_SOUTH
|
||||
HEADING_SOUTH -> state.heading = HEADING_WEST
|
||||
HEADING_WEST -> state.heading = HEADING_NORTH
|
||||
HEADING_NORTH -> state.heading = HEADING_EAST
|
||||
Heading.EAST -> state.heading = Heading.SOUTH
|
||||
Heading.SOUTH -> state.heading = Heading.WEST
|
||||
Heading.WEST -> state.heading = Heading.NORTH
|
||||
Heading.NORTH -> state.heading = Heading.EAST
|
||||
}
|
||||
}
|
||||
|
||||
private fun turnLeft() {
|
||||
when (state.heading) {
|
||||
HEADING_EAST -> state.heading = HEADING_NORTH
|
||||
HEADING_NORTH -> state.heading = HEADING_WEST
|
||||
HEADING_WEST -> state.heading = HEADING_SOUTH
|
||||
HEADING_SOUTH -> state.heading = HEADING_EAST
|
||||
Heading.EAST -> state.heading = Heading.NORTH
|
||||
Heading.NORTH -> state.heading = Heading.WEST
|
||||
Heading.WEST -> state.heading = Heading.SOUTH
|
||||
Heading.SOUTH -> state.heading = Heading.EAST
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -64,8 +64,3 @@ private const val ROVER_COMMANDLIST_DIRECTION = 0
|
|||
private const val COMMAND_TURN_LEFT = 'L'
|
||||
private const val COMMAND_TURN_RIGHT = 'R'
|
||||
private const val COMMAND_MOVE = 'M'
|
||||
|
||||
internal const val HEADING_EAST = 'E'
|
||||
internal const val HEADING_NORTH = 'N'
|
||||
internal const val HEADING_WEST = 'W'
|
||||
internal const val HEADING_SOUTH = 'S'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue