From: Neil Smith Date: Thu, 22 Dec 2022 22:52:44 +0000 (+0000) Subject: Tidying X-Git-Url: https://git.njae.me.uk/?a=commitdiff_plain;h=74af16020ce115eaeefcb8a8a777b15b3ca30cf0;p=advent-of-code-22.git Tidying --- diff --git a/advent22/Main.hs b/advent22/Main.hs index 17f6689..1a2e1c7 100644 --- a/advent22/Main.hs +++ b/advent22/Main.hs @@ -1,6 +1,6 @@ -- Writeup at https://work.njae.me.uk/2022/12/19/advent-of-code-2022-day-18/ -import Debug.Trace +-- import Debug.Trace import AoC import Prelude hiding (Left, Right) @@ -10,7 +10,6 @@ import Linear hiding (E) import Control.Lens import Data.Ix import Data.Maybe -import Data.List import Data.Char import Control.Monad.Reader @@ -62,6 +61,7 @@ main = print $ part2 field instrs -- print $ probeAllCorners field +part1, part2 :: FieldMap -> [PathElement] -> Int part1 fieldMap instrs = passwordOf endPerson where field = mkFlatField fieldMap startPos = V2 0 $ fromJust $ minimumOf (folded . filteredBy (_r . only 0) . _c) $ M.keysSet fieldMap @@ -199,8 +199,6 @@ crossEdge person face = (Down, F) -> person & position . _r .~ 0 & position . _c .~ (interpol c 100 149) (Left, F) -> person & position . _r .~ 0 & position . _c .~ (interpol r 50 99) & facing .~ Down - otherwise -> error ("Crossing illegal boundary " ++ show (person, face)) - where r = person ^. position . _r c = person ^. position . _c d = person ^. facing @@ -250,6 +248,7 @@ mkField rows = M.fromList | cell == '#' = Wall where cell = (rows !! r) !! c +isCell :: Int -> Int -> [String] -> Bool isCell r c rows = isRow && isCol && ((rows !! r) !! c) `elem` (".#" :: String) where isRow = r < length rows isCol = c < (length $ rows !! r)