R: Long method

This commit is contained in:
Paul Hameteman 2025-10-14 21:45:15 +02:00
commit ab064c71f7
3 changed files with 33 additions and 27 deletions

View file

@ -1,9 +1,9 @@
# TODO
# RPP
- [ ] Complexity
- [ ] long method
- [ ] duplicated code
# RPP
- [ ] Reorder Responsibilities
- [ ] long class
- [ ] feature envy

View file

@ -13,23 +13,14 @@ class Rover {
fun go(instructions: String) {
for (instruction in instructions) {
when (instruction) {
COMMAND_TURN_LEFT -> {
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
COMMAND_TURN_LEFT -> turnLeft()
COMMAND_TURN_RIGHT -> turnRight()
COMMAND_MOVE -> move()
}
}
COMMAND_TURN_RIGHT -> {
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
}
}
COMMAND_MOVE -> {
private fun move() {
when (state.heading) {
HEADING_EAST -> state.positionX++
HEADING_SOUTH -> state.positionY--
@ -37,8 +28,23 @@ class Rover {
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
}
}
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
}
}
val position: String