aboutsummaryrefslogtreecommitdiff
path: root/2022/Day10
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2022-12-10 09:43:46 +0200
committerSyndamia <kamen@syndamia.com>2022-12-10 09:43:53 +0200
commit92bd65ac086522ddea27f556085671040f8d7378 (patch)
tree4a6f58cf81066ace4e88846ccc00d8e5ae8f0e76 /2022/Day10
parentbd16b90f12e03e85a62232d705824430cf64fd23 (diff)
downloadadvent-of-code-92bd65ac086522ddea27f556085671040f8d7378.tar
advent-of-code-92bd65ac086522ddea27f556085671040f8d7378.tar.gz
advent-of-code-92bd65ac086522ddea27f556085671040f8d7378.zip
[2022/D10] Solved tasks from today
Diffstat (limited to '2022/Day10')
-rw-r--r--2022/Day10/input-po.txt137
-rw-r--r--2022/Day10/part-one.cl21
-rw-r--r--2022/Day10/part-two.cl27
3 files changed, 185 insertions, 0 deletions
diff --git a/2022/Day10/input-po.txt b/2022/Day10/input-po.txt
new file mode 100644
index 0000000..7aa3810
--- /dev/null
+++ b/2022/Day10/input-po.txt
@@ -0,0 +1,137 @@
+addx 1
+noop
+addx 2
+addx 5
+addx 3
+noop
+addx -1
+addx 5
+noop
+noop
+addx 5
+noop
+addx 3
+noop
+addx 6
+addx -4
+noop
+noop
+addx 5
+noop
+addx -32
+addx 35
+addx 5
+addx -31
+addx 7
+addx -13
+addx 2
+addx 2
+addx 5
+addx 6
+addx -5
+addx 2
+addx 5
+addx 2
+addx 2
+addx -17
+addx 18
+addx 5
+addx 2
+addx -30
+addx 31
+addx 2
+addx 2
+addx -32
+addx -1
+addx 10
+addx -8
+noop
+noop
+addx 6
+addx 16
+noop
+addx -11
+addx 3
+addx -2
+addx 3
+noop
+addx 6
+noop
+addx -2
+noop
+addx 7
+addx 3
+addx -2
+addx 4
+addx -20
+noop
+addx -14
+addx -2
+addx 6
+addx 2
+addx 3
+noop
+addx 2
+addx -1
+addx 4
+noop
+addx 5
+noop
+addx 2
+addx 3
+addx -2
+addx 3
+noop
+addx 4
+noop
+addx 5
+noop
+addx 2
+addx -24
+addx -15
+addx 17
+addx -10
+addx 2
+addx -5
+addx 6
+noop
+addx 3
+addx 2
+addx 2
+noop
+addx 3
+addx 2
+addx 5
+addx -2
+addx 3
+addx 2
+addx 2
+addx 5
+addx 2
+addx -18
+addx -19
+noop
+addx 1
+addx 2
+addx 5
+addx 3
+noop
+noop
+noop
+noop
+addx 2
+addx 5
+addx 2
+addx 3
+noop
+addx -8
+addx 11
+noop
+noop
+addx 2
+addx 5
+addx 2
+addx 3
+noop
+addx -34
+noop
diff --git a/2022/Day10/part-one.cl b/2022/Day10/part-one.cl
new file mode 100644
index 0000000..9b3ace6
--- /dev/null
+++ b/2022/Day10/part-one.cl
@@ -0,0 +1,21 @@
+
+;;; https://gitlab.com/Syndamia/senzill
+(require :senzill)
+(use-package :senzill.math)
+(use-package :senzill.collections)
+(use-package :senzill.io)
+
+(ask-for-stream (prog-input)
+ (let ((X 1) (cycles 1) (check-on 20) (check-max 220) (signal-sum 0))
+
+ (doread-lines (inpt :read-line-options (prog-input NIL))
+ (loop for i from 1 to (if (char= (char inpt 0) #\a) 2 1)
+ if (and (> check-on 0) (= cycles check-on))
+ do (+= signal-sum (* X check-on))
+ (if (< check-on check-max)
+ (+= check-on 40)
+ (setf check-on -1))
+ if (= i 2)
+ do (+= X (parse-integer inpt :start 5))
+ do (++1 cycles)))
+ (print signal-sum)))
diff --git a/2022/Day10/part-two.cl b/2022/Day10/part-two.cl
new file mode 100644
index 0000000..5ce1b78
--- /dev/null
+++ b/2022/Day10/part-two.cl
@@ -0,0 +1,27 @@
+;;; https://gitlab.com/Syndamia/senzill
+(require :senzill)
+(use-package :senzill.math)
+(use-package :senzill.collections)
+(use-package :senzill.io)
+
+(ask-for-stream (prog-input)
+ (let ((X 1) (cycles 0) (check-on 40) (check-max 241) (line-buff ""))
+
+ (doread-lines (inpt :read-line-options (prog-input NIL))
+ (loop for i from 1 to (if (char= (char inpt 0) #\a) 2 1)
+ if (and (> check-on 0) (= cycles check-on))
+ do (print line-buff)
+ (force-output)
+ (setf line-buff "")
+ (if (< check-on check-max)
+ (+= check-on 40)
+ (setf check-on -1))
+ do (setf line-buff (concatenate 'string
+ line-buff
+ (if (or (= (mod cycles 40) (- X 1)) (= (mod cycles 40) X) (= (mod cycles 40) (+ X 1)))
+ "#"
+ ".")))
+ (++1 cycles)
+ if (= i 2)
+ do (+= X (parse-integer inpt :start 5))))
+ (print line-buff)))