projects
/
advent-of-code-22.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e117feb
)
Tidying
author
Neil Smith
<NeilNjae@users.noreply.github.com>
Tue, 13 Dec 2022 11:22:03 +0000
(13:22 +0200)
committer
Neil Smith
<NeilNjae@users.noreply.github.com>
Tue, 13 Dec 2022 11:22:03 +0000
(13:22 +0200)
advent10/Main.hs
patch
|
blob
|
history
diff --git
a/advent10/Main.hs
b/advent10/Main.hs
index 764638fb346f83bf35161075d58235e15378b6cc..4ac9abcd77e3d853e5fcfb51906be96428f69f52 100644
(file)
--- a/
advent10/Main.hs
+++ b/
advent10/Main.hs
@@
-1,4
+1,4
@@
--- Writeup at https://work.njae.me.uk/2022/12/1
0/advent-of-code-2022-day-9
/
+-- Writeup at https://work.njae.me.uk/2022/12/1
3/advent-of-code-2022-day-10
/
import AoC
import Data.Text (Text)
import AoC
import Data.Text (Text)
@@
-23,23
+23,22
@@
main =
putStrLn $ part2 regVals
part1 :: [Signal] -> Int
putStrLn $ part2 regVals
part1 :: [Signal] -> Int
-part1
regVals = calculateSixSignals $ extractSignals regV
als
+part1
= calculateSixSignals . extractSign
als
part2 :: [Signal] -> String
part2 regVals = unlines display
part2 :: [Signal] -> String
part2 regVals = unlines display
- where pixels = map isLit regVals
- rows = chunksOf 40 pixels
- display = fmap (fmap showPixel) rows
+ where pixels = map (showPixel . isLit) regVals
+ display = chunksOf 40 pixels
apply :: [Operation] -> [Signal]
apply :: [Operation] -> [Signal]
-apply
ops = zip [1..] $ scanl' (+) 1 $ concatMap applyOp ops
+apply
= zip [1..] . scanl' (+) 1 . concatMap applyOp
applyOp :: Operation -> [Int]
applyOp :: Operation -> [Int]
-applyOp
Noop
= [0]
+applyOp
Noop
= [0]
applyOp (Addx d) = [0, d]
extractSignals :: [Signal] -> [Signal]
applyOp (Addx d) = [0, d]
extractSignals :: [Signal] -> [Signal]
-extractSignals
signals = filter (\(t, _n) -> (t + 20) `mod` 40 == 0) signals
+extractSignals
= filter (\(t, _n) -> (t + 20) `mod` 40 == 0)
calculateSixSignals :: [Signal] -> Int
calculateSixSignals signals = sum [ (t * n)
calculateSixSignals :: [Signal] -> Int
calculateSixSignals signals = sum [ (t * n)
@@
-47,13
+46,11
@@
calculateSixSignals signals = sum [ (t * n)
, t <= 220
]
, t <= 220
]
-
isLit :: Signal -> Bool
isLit (n, x) = abs (x - c) <= 1
where c = colummOf n
colummOf :: Int -> Int
isLit :: Signal -> Bool
isLit (n, x) = abs (x - c) <= 1
where c = colummOf n
colummOf :: Int -> Int
--- colummOf n = (n - 1) `mod` 40 + 1
colummOf n = (n - 1) `mod` 40
showPixel :: Bool -> Char
colummOf n = (n - 1) `mod` 40
showPixel :: Bool -> Char