diff --git a/aoc/src/main/scala/aoc/y2018/Day03.scala b/aoc/src/main/scala/aoc/y2018/Day03.scala index c35df6a..f39ae65 100644 --- a/aoc/src/main/scala/aoc/y2018/Day03.scala +++ b/aoc/src/main/scala/aoc/y2018/Day03.scala @@ -12,6 +12,7 @@ object Day03 extends Day { def idParser[_: P]: P[Int] = P("#" ~ numParser) def coordParser[_: P]: P[(Int, Int)] = P(numParser ~ "," ~ numParser) def dimensParser[_: P]: P[(Int, Int)] = P(numParser ~ "x" ~ numParser) + def claimParser[_: P]: P[Claim] = P(idParser ~ "@" ~ coordParser ~ ":" ~ dimensParser).map { case (id, coords, dimens) => Claim(id, coords, dimens) } @@ -26,15 +27,15 @@ object Day03 extends Day { (c, p, s) match { case ((cx, cy), (px, py), (sw, sh)) => cx >= px && - cx < px + sw && - cy >= py && - cy < py + sh + cx < px + sw && + cy >= py && + cy < py + sh } } def mapSection[A](l: List[List[A]], p: (Int, Int), s: (Int, Int), f: A => A): List[List[A]] = { val coordinated = l.zipWithIndex.map { case (n, i) => n.zipWithIndex.map { case (e, y) => (e, y, i) } } - val mapped = coordinated.map(_.map { case (e, y, x) => if(insideRange((x, y), p, s)) f(e) else e }) + val mapped = coordinated.map(_.map { case (e, y, x) => if (insideRange((x, y), p, s)) f(e) else e }) mapped }