[hs] Clean up 2020_11
This commit is contained in:
parent
2360ef2579
commit
89ecc14f17
1 changed files with 0 additions and 23 deletions
|
|
@ -4,8 +4,6 @@ module Aoc.Y2020.D11
|
||||||
( day
|
( day
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Monad
|
|
||||||
import Data.Foldable
|
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
|
|
||||||
import qualified Data.Map.Strict as Map
|
import qualified Data.Map.Strict as Map
|
||||||
|
|
@ -79,35 +77,14 @@ iterateUntilSettled f a
|
||||||
where
|
where
|
||||||
a' = f a
|
a' = f a
|
||||||
|
|
||||||
printField :: Field -> IO ()
|
|
||||||
printField field = do
|
|
||||||
let (mx, my) = fSize field
|
|
||||||
for_ [0..my-1] $ \y -> do
|
|
||||||
for_ [0..mx-1] $ \x ->
|
|
||||||
printSeat $ fMap field Map.!? (x, y)
|
|
||||||
putStrLn ""
|
|
||||||
putStrLn ""
|
|
||||||
where
|
|
||||||
printSeat Nothing = putStr "."
|
|
||||||
printSeat (Just Empty) = putStr "L"
|
|
||||||
printSeat (Just Occupied) = putStr "#"
|
|
||||||
|
|
||||||
printIterationsUntilSettled :: (Field -> Field) -> Field -> IO ()
|
|
||||||
printIterationsUntilSettled f a = do
|
|
||||||
printField a
|
|
||||||
let a' = f a
|
|
||||||
unless (a == a') $ printIterationsUntilSettled f a'
|
|
||||||
|
|
||||||
solver :: Field -> IO ()
|
solver :: Field -> IO ()
|
||||||
solver field = do
|
solver field = do
|
||||||
putStrLn ">> Part 1"
|
putStrLn ">> Part 1"
|
||||||
printIterationsUntilSettled (step stepSeatP1) field
|
|
||||||
let field1 = iterateUntilSettled (step stepSeatP1) field
|
let field1 = iterateUntilSettled (step stepSeatP1) field
|
||||||
print $ length $ filter isOccupied $ Map.elems $ fMap field1
|
print $ length $ filter isOccupied $ Map.elems $ fMap field1
|
||||||
|
|
||||||
putStrLn ""
|
putStrLn ""
|
||||||
putStrLn ">> Part 2"
|
putStrLn ">> Part 2"
|
||||||
printIterationsUntilSettled (step stepSeatP2) field
|
|
||||||
let field2 = iterateUntilSettled (step stepSeatP2) field
|
let field2 = iterateUntilSettled (step stepSeatP2) field
|
||||||
print $ length $ filter isOccupied $ Map.elems $ fMap field2
|
print $ length $ filter isOccupied $ Map.elems $ fMap field2
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue