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 # TODO
# RPP
- [ ] Complexity - [ ] Complexity
- [ ] long method - [ ] long method
- [ ] duplicated code - [ ] duplicated code
# RPP
- [ ] Reorder Responsibilities - [ ] Reorder Responsibilities
- [ ] long class - [ ] long class
- [ ] feature envy - [ ] feature envy

View file

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