Untitled
unknown
kotlin
a year ago
7.3 kB
12
Indexable
object FindTagRouter { fun route(currentDirection: CompassDirection, bestDirection: CompassDirection): Int { when (bestDirection) { // Best direction is North is CompassDirection.North -> { // If current direction is not North if (currentDirection !is CompassDirection.North) { when (currentDirection) { is CompassDirection.East -> return 270 is CompassDirection.Northeast -> return 315 is CompassDirection.Northwest -> return 45 is CompassDirection.Southeast -> return 225 is CompassDirection.Southwest -> return 135 is CompassDirection.West -> return 90 is CompassDirection.South -> return 180 else -> {} } } else { return 0 } } // Best direction is South is CompassDirection.South -> { // If current direction is not South if (currentDirection !is CompassDirection.South) { when (currentDirection) { is CompassDirection.East -> return 90 is CompassDirection.North -> return 180 is CompassDirection.Northeast -> return 135 is CompassDirection.Northwest -> return 225 is CompassDirection.Southeast -> return 45 is CompassDirection.Southwest -> return 315 is CompassDirection.West -> return 270 else -> {} } } else { return 0 } } // Best direction is East is CompassDirection.East -> { // If current direction is not East if (currentDirection !is CompassDirection.East) { when (currentDirection) { is CompassDirection.North -> return 90 is CompassDirection.Northeast -> return 45 is CompassDirection.Northwest -> return 135 is CompassDirection.Southeast -> return 315 is CompassDirection.Southwest -> return 225 is CompassDirection.West -> return 180 is CompassDirection.South -> return 270 else -> {} } } else { return 0 } } // Best direction is West is CompassDirection.West -> { // If current direction is not West if (currentDirection !is CompassDirection.West) { when (currentDirection) { is CompassDirection.North -> return 270 is CompassDirection.Northeast -> return 225 is CompassDirection.Northwest -> return 315 is CompassDirection.Southeast -> return 135 is CompassDirection.Southwest -> return 45 is CompassDirection.East -> return 180 is CompassDirection.South -> return 90 else -> {} } } else { return 0 } } // Best direction is Northeast is CompassDirection.Northeast -> { // If current direction is not Northeast if (currentDirection !is CompassDirection.Northeast) { when (currentDirection) { is CompassDirection.North -> return 45 is CompassDirection.East -> return 315 is CompassDirection.Northwest -> return 90 is CompassDirection.Southeast -> return 270 is CompassDirection.Southwest -> return 180 is CompassDirection.West -> return 225 is CompassDirection.South -> return 135 else -> {} } } else { return 0 } } // Best direction is Northwest is CompassDirection.Northwest -> { // If current direction is not Northwest if (currentDirection !is CompassDirection.Northwest) { when (currentDirection) { is CompassDirection.North -> return 315 is CompassDirection.East -> return 225 is CompassDirection.Northeast -> return 270 is CompassDirection.Southeast -> return 180 is CompassDirection.Southwest -> return 90 is CompassDirection.West -> return 45 is CompassDirection.South -> return 225 else -> {} } } else { return 0 } } // Best direction is Southeast is CompassDirection.Southeast -> { // If current direction is not Southeast if (currentDirection !is CompassDirection.Southeast) { when (currentDirection) { is CompassDirection.North -> return 135 is CompassDirection.East -> return 45 is CompassDirection.Northeast -> return 90 is CompassDirection.Northwest -> return 225 is CompassDirection.Southwest -> return 315 is CompassDirection.West -> return 270 is CompassDirection.South -> return 45 else -> {} } } else { return 0 } } // Best direction is Southwest is CompassDirection.Southwest -> { // If current direction is not Southwest if (currentDirection !is CompassDirection.Southwest) { when (currentDirection) { is CompassDirection.North -> return 225 is CompassDirection.East -> return 135 is CompassDirection.Northeast -> return 180 is CompassDirection.Northwest -> return 270 is CompassDirection.Southeast -> return 45 is CompassDirection.West -> return 90 is CompassDirection.South -> return 315 else -> {} } } else { return 0 } } is CompassDirection.None -> return 0 } return 0 } }
Editor is loading...
Leave a Comment