From 0492a86f0889cf2d7e0b4fe521c869c619cdd649 Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Sun, 5 Dec 2021 11:24:34 +0100 Subject: [PATCH] day(05): introduce helper for creating range Signed-off-by: Matej Focko --- src/day05/Day05.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/day05/Day05.kt b/src/day05/Day05.kt index 7b21765..55fd5db 100644 --- a/src/day05/Day05.kt +++ b/src/day05/Day05.kt @@ -7,6 +7,12 @@ data class Point(val x: Int, val y: Int) { operator fun times(other: Int): Point = Point(other * x, other * y) } +fun getRange(from: Int, to: Int): Iterable = if (from <= to) { + from..to +} else { + (to..from).reversed() +} + data class Vector(val from: Point, val to: Point) { val horizontal: Boolean get() = from.y == to.y @@ -18,10 +24,10 @@ data class Vector(val from: Point, val to: Point) { get() = horizontal || vertical private val xs: Iterable - get() = if (from.x <= to.x) (from.x..to.x) else (to.x..from.x).reversed() + get() = getRange(from.x, to.x) private val ys: Iterable - get() = if (from.y <= to.y) (from.y..to.y) else (to.y..from.y).reversed() + get() = getRange(from.y, to.y) val points: Iterable get() = if (horizontalOrVertical) {