aboutsummaryrefslogtreecommitdiff
path: root/src/Day05.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/Day05.kt')
-rw-r--r--src/Day05.kt10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/Day05.kt b/src/Day05.kt
index bc3f1bc..eaa7b66 100644
--- a/src/Day05.kt
+++ b/src/Day05.kt
@@ -2,14 +2,12 @@ import kotlin.math.absoluteValue
import kotlin.math.max
import kotlin.math.sign
-data class Pos(val x: Int, val y: Int)
-
-data class Line(val start: Pos, val end: Pos) {
+data class Line(val start: Pos2D, val end: Pos2D) {
companion object {
fun fromString(input: String): Line {
val (start, end) = input.split(" -> ").map { coordinateString ->
val (x, y) = coordinateString.split(",").map(String::toInt)
- Pos(x, y)
+ Pos2D(x, y)
}
return Line(start, end)
@@ -22,7 +20,7 @@ data class Line(val start: Pos, val end: Pos) {
val isDiagonal: Boolean
get() = (end.x - start.x).absoluteValue == (end.y - start.y).absoluteValue
- val pointSequence: Sequence<Pos>
+ val pointSequence: Sequence<Pos2D>
get() = sequence {
val xOffset = end.x - start.x
val yOffset = end.y - start.y
@@ -31,7 +29,7 @@ data class Line(val start: Pos, val end: Pos) {
val x = start.x + s * xOffset.sign
val y = start.y + s * yOffset.sign
- yield(Pos(x, y))
+ yield(Pos2D(x, y))
}
}
}