aoc2022/2-a.hs

29 lines
678 B
Haskell

{-# OPTIONS_GHC -Wno-incomplete-patterns #-}
scoreLose = 0
scoreDraw = 3
scoreWin = 6
resolveMatchScore 'A' 'Z' = scoreLose
resolveMatchScore 'B' 'X' = scoreLose
resolveMatchScore 'C' 'Y' = scoreLose
resolveMatchScore 'A' 'Y' = scoreWin
resolveMatchScore 'B' 'Z' = scoreWin
resolveMatchScore 'C' 'X' = scoreWin
resolveMatchScore 'A' 'X' = scoreDraw
resolveMatchScore 'B' 'Y' = scoreDraw
resolveMatchScore 'C' 'Z' = scoreDraw
resolveOptionScore 'X' = 1
resolveOptionScore 'Y' = 2
resolveOptionScore 'Z' = 3
getScore a b = resolveMatchScore a b + resolveOptionScore b
main = interact $
show
. sum
. map ((\l -> getScore (l !! 0 !! 0) (l !! 1 !! 0)) . words)
. lines