Skip to content

Commit efd56df

Browse files
committed
make things less dopey
1 parent e59385f commit efd56df

File tree

3 files changed

+12
-13
lines changed

3 files changed

+12
-13
lines changed

src/main/scala/org/codefork/aoc2018/Day10.scala

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,20 @@ object Day10 {
2121

2222
def nextSecond =
2323
copy(coords = coords.map(_.move), t+1)
24+
25+
def render: String =
26+
minY.to(maxY).foldLeft("") { (grid, y) =>
27+
grid +minX.to(maxX).foldLeft("") { (line, x) =>
28+
line + (if (set.contains((x, y))) "#" else ".")
29+
} + "\n"
30+
}
31+
2432
}
2533

26-
def findLetters(coordSet: CoordSet, lastSetOpt: Option[CoordSet] = None): (String, CoordSet) = {
34+
def findLetters(coordSet: CoordSet, lastSetOpt: Option[CoordSet] = None): CoordSet = {
2735
// height initially shrinks; when it starts growing again, the last coordset is the answer
2836
if (lastSetOpt.isDefined && coordSet.height > lastSetOpt.get.height) {
29-
val lastSet = lastSetOpt.get
30-
31-
val text = lastSet.minY.to(lastSet.maxY).foldLeft("") { (grid, y) =>
32-
grid + lastSet.minX.to(lastSet.maxX).foldLeft("") { (line, x) =>
33-
line + (if (lastSet.set.contains((x, y))) "#" else ".")
34-
} + "\n"
35-
}
36-
(text, lastSet)
37+
lastSetOpt.get
3738
} else {
3839
findLetters(coordSet.nextSecond, Some(coordSet))
3940
}

src/main/scala/org/codefork/aoc2018/Day10Part1.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import org.codefork.aoc2018.Day10.{CoordSet, getCoords}
55
object Day10Part1 extends Part {
66

77
override def answer: String = {
8-
val (msg, coordSet) = Day10.findLetters(CoordSet(getCoords))
9-
"\n" + msg
8+
"\n" + Day10.findLetters(CoordSet(getCoords)).render
109
}
1110

1211
}

src/main/scala/org/codefork/aoc2018/Day10Part2.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import org.codefork.aoc2018.Day10.{CoordSet, getCoords}
55
object Day10Part2 extends Part {
66

77
override def answer: String = {
8-
val (msg, coordSet) = Day10.findLetters(CoordSet(getCoords))
9-
coordSet.t.toString
8+
Day10.findLetters(CoordSet(getCoords)).t.toString
109
}
1110

1211
}

0 commit comments

Comments
 (0)