diff --git a/TECHDEBT.md b/TECHDEBT.md index 809f442..7b355c9 100644 --- a/TECHDEBT.md +++ b/TECHDEBT.md @@ -6,13 +6,9 @@ - [ ] middle man # Mikado -- [x] Remove posX, posY from RoverState - - [x] use position in Rover.position - - [x] Create toString in Position - - [x] use position in Rover constructor() - - [x] use position in move() - - [x] Add position to RoverState - - [x] Create Position data class +- [x] Replace x, y with Position in Heading.move() + - [x] RoverState.move use position +- [x] Return position in move() instead of Pair # RPP - [ ] Design Patterns @@ -60,3 +56,10 @@ - [x] move -> return Pair but using vector - [x] Add Vector to enum class Heading - [x] Create Vector data class +- [x] Remove posX, posY from RoverState + - [x] use position in Rover.position + - [x] Create toString in Position + - [x] use position in Rover constructor() + - [x] use position in move() + - [x] Add position to RoverState + - [x] Create Position data class diff --git a/src/main/kotlin/org/example/Heading.kt b/src/main/kotlin/org/example/Heading.kt index 2176e31..39eabe8 100644 --- a/src/main/kotlin/org/example/Heading.kt +++ b/src/main/kotlin/org/example/Heading.kt @@ -23,10 +23,7 @@ enum class Heading(val symbol: Char, val vector: Vector) { NORTH -> EAST } - fun move( - x: Int, - y: Int, - ): Pair = Pair(x + vector.deltaX, y + vector.deltaY) + fun move(position: Position): Position = position.copy(x = position.x + vector.deltaX, position.y + vector.deltaY) override fun toString(): String = symbol.toString() diff --git a/src/main/kotlin/org/example/RoverState.kt b/src/main/kotlin/org/example/RoverState.kt index 702e9dd..97b442e 100644 --- a/src/main/kotlin/org/example/RoverState.kt +++ b/src/main/kotlin/org/example/RoverState.kt @@ -8,8 +8,5 @@ data class RoverState( fun turnRight(): RoverState = copy(heading = heading.turnRight()) - fun move(): RoverState { - val (newX, newY) = heading.move(position.x, position.y) - return copy(position = Position(newX, newY)) - } + fun move(): RoverState = copy(position = heading.move(position)) }