R: Readability (magic strings/numbers)
This commit is contained in:
parent
c4345a260f
commit
75e1b9cb00
2 changed files with 37 additions and 21 deletions
|
|
@ -2,7 +2,8 @@
|
|||
- [ ] Readability
|
||||
- [x] comments
|
||||
- [x] dead code
|
||||
- [ ] magic strings/numbers
|
||||
- [x] magic strings/numbers
|
||||
- [ ] bad naming
|
||||
- [ ] scopes
|
||||
|
||||
# RPP
|
||||
|
|
|
|||
|
|
@ -3,38 +3,38 @@ package org.example
|
|||
class Rover {
|
||||
constructor(p: String) {
|
||||
val s = p.split(' ')
|
||||
if (s.size >= 3) {
|
||||
rs.xx = s[0].toInt()
|
||||
rs.yy = s[1].toInt()
|
||||
rs.dd = s[2][0]
|
||||
if (s.size >= ROVER_MINIMUM_NEEDED_COMMANDS) {
|
||||
rs.xx = s[ROVER_STARTING_POSITION_X].toInt()
|
||||
rs.yy = s[ROVER_STARTING_POSITION_Y].toInt()
|
||||
rs.dd = s[ROVER_COMMANDLIST][ROVER_COMMANDLIST_FIRST_COMMAND]
|
||||
}
|
||||
}
|
||||
|
||||
fun go(cms: String) {
|
||||
for (c in cms) {
|
||||
when (c) {
|
||||
'L' -> {
|
||||
COMMAND_TURN_LEFT -> {
|
||||
when (rs.dd) {
|
||||
'E' -> rs.dd = 'N'
|
||||
'N' -> rs.dd = 'W'
|
||||
'W' -> rs.dd = 'S'
|
||||
'S' -> rs.dd = 'E'
|
||||
DIRECTION_EAST -> rs.dd = DIRECTION_NORTH
|
||||
DIRECTION_NORTH -> rs.dd = DIRECTION_WEST
|
||||
DIRECTION_WEST -> rs.dd = DIRECTION_SOUTH
|
||||
DIRECTION_SOUTH -> rs.dd = DIRECTION_EAST
|
||||
}
|
||||
}
|
||||
'R' -> {
|
||||
COMMAND_TURN_RIGHT -> {
|
||||
when (rs.dd) {
|
||||
'E' -> rs.dd = 'S'
|
||||
'S' -> rs.dd = 'W'
|
||||
'W' -> rs.dd = 'N'
|
||||
'N' -> rs.dd = 'E'
|
||||
DIRECTION_EAST -> rs.dd = DIRECTION_SOUTH
|
||||
DIRECTION_SOUTH -> rs.dd = DIRECTION_WEST
|
||||
DIRECTION_WEST -> rs.dd = DIRECTION_NORTH
|
||||
DIRECTION_NORTH -> rs.dd = DIRECTION_EAST
|
||||
}
|
||||
}
|
||||
'M' -> {
|
||||
COMMAND_MOVE -> {
|
||||
when (rs.dd) {
|
||||
'E' -> rs.xx++
|
||||
'S' -> rs.yy--
|
||||
'W' -> rs.xx--
|
||||
'N' -> rs.yy++
|
||||
DIRECTION_EAST -> rs.xx++
|
||||
DIRECTION_SOUTH -> rs.yy--
|
||||
DIRECTION_WEST -> rs.xx--
|
||||
DIRECTION_NORTH -> rs.yy++
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -54,5 +54,20 @@ class Rover {
|
|||
class RoverState {
|
||||
var xx: Int = 0
|
||||
var yy: Int = 0
|
||||
var dd: Char = 'N'
|
||||
var dd: Char = DIRECTION_NORTH
|
||||
}
|
||||
|
||||
private const val ROVER_MINIMUM_NEEDED_COMMANDS = 3
|
||||
private const val ROVER_STARTING_POSITION_X = 0
|
||||
private const val ROVER_STARTING_POSITION_Y = 1
|
||||
private const val ROVER_COMMANDLIST = 2
|
||||
private const val ROVER_COMMANDLIST_FIRST_COMMAND = 0
|
||||
|
||||
private const val COMMAND_TURN_LEFT = 'L'
|
||||
private const val COMMAND_TURN_RIGHT = 'R'
|
||||
private const val COMMAND_MOVE = 'M'
|
||||
|
||||
private const val DIRECTION_EAST = 'E'
|
||||
private const val DIRECTION_NORTH = 'N'
|
||||
private const val DIRECTION_WEST = 'W'
|
||||
private const val DIRECTION_SOUTH = 'S'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue