From 232efd2a10872f36db5670f7fb34a5042b9b39f8 Mon Sep 17 00:00:00 2001 From: Araozu Date: Tue, 31 Oct 2023 21:42:07 -0500 Subject: [PATCH] day 2 part 1 --- src/main/scala/Day02.scala | 47 ++++++++++++++++++++++++++++++++++++++ src/main/scala/Main.scala | 4 ++-- 2 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 src/main/scala/Day02.scala diff --git a/src/main/scala/Day02.scala b/src/main/scala/Day02.scala new file mode 100644 index 0000000..9e6bc39 --- /dev/null +++ b/src/main/scala/Day02.scala @@ -0,0 +1,47 @@ +import scala.util.Success +import scala.util.Failure + +enum RPS: + case Rock, Paper, Scissor + + def get_score() = this match + case Rock => 1 + case Paper => 2 + case Scissor => 3 + + def get_match_score(other: RPS) = (this, other) match + case (Rock, Scissor) | (Paper, Rock) | (Scissor, Paper) => 6 + case (Rock, Rock) | (Paper, Paper) | (Scissor, Scissor) => 3 + case _ => 0 + + +object Day02 extends Solution: + override def part_01() = + val file = read_input("02") match + case Success(f) => f + case Failure(ex) => + return "Error opening file: " + ex.getMessage() + + var score = 0 + + for line <- file.getLines() do + val (opponent_choice, self_choice) = ( + line.charAt(0) match + case 'A' => RPS.Rock + case 'B' => RPS.Paper + case 'C' => RPS.Scissor + case _ => return "Unexpected char found (pos 0)" + , + line.charAt(2) match + case 'X' => RPS.Rock + case 'Y' => RPS.Paper + case 'Z' => RPS.Scissor + case _ => return "Unexpected char found (pos 2)" + ) + + score += self_choice.get_score() + self_choice.get_match_score(opponent_choice) + + s"part 2: $score" + + override def part_02() = "part 2: :c" + diff --git a/src/main/scala/Main.scala b/src/main/scala/Main.scala index c9a7c82..dbffe2c 100644 --- a/src/main/scala/Main.scala +++ b/src/main/scala/Main.scala @@ -4,7 +4,7 @@ import scala.util.Random // Number guessing game @main def hello: Unit = println("Advent of code 2022 with Scala") - println(Day01.part_01()) - println(Day01.part_02()) + println(Day02.part_01()) + println(Day02.part_02())