From f24c1eb34715c9094932b982227a4d184a105d0d Mon Sep 17 00:00:00 2001 From: MsK` Date: Thu, 2 Dec 2021 12:13:59 +0100 Subject: [PATCH] day 2 --- day-2.input | 1000 +++++++++++++++++++++++++++++++++++++++++++++++++++ day-2.scm | 41 +++ 2 files changed, 1041 insertions(+) create mode 100644 day-2.input create mode 100644 day-2.scm diff --git a/day-2.input b/day-2.input new file mode 100644 index 0000000..d863ae7 --- /dev/null +++ b/day-2.input @@ -0,0 +1,1000 @@ +forward 8 +down 9 +forward 2 +down 1 +forward 9 +forward 7 +forward 5 +up 3 +up 3 +down 5 +forward 2 +down 8 +down 3 +forward 6 +down 2 +down 4 +down 7 +down 7 +forward 2 +down 6 +down 8 +down 2 +down 8 +up 9 +down 8 +forward 8 +down 5 +up 4 +forward 4 +forward 4 +forward 3 +down 9 +forward 8 +up 3 +forward 2 +forward 3 +forward 6 +down 7 +down 2 +forward 4 +forward 7 +forward 6 +up 5 +up 1 +forward 4 +down 9 +up 6 +forward 6 +up 9 +forward 1 +down 9 +forward 4 +down 3 +forward 7 +forward 5 +down 1 +up 9 +down 9 +forward 6 +forward 1 +down 5 +down 6 +forward 6 +forward 3 +up 4 +up 9 +down 3 +forward 6 +up 4 +up 6 +forward 4 +down 1 +down 2 +up 9 +forward 8 +down 2 +down 3 +down 4 +up 3 +forward 3 +forward 4 +down 4 +forward 7 +forward 9 +down 7 +forward 6 +forward 2 +up 6 +forward 7 +forward 9 +down 5 +forward 6 +up 9 +forward 6 +forward 2 +forward 6 +up 3 +down 1 +forward 5 +down 3 +forward 7 +down 4 +forward 1 +forward 7 +down 1 +up 2 +down 7 +down 6 +forward 8 +forward 2 +forward 1 +forward 9 +down 3 +forward 3 +down 6 +up 8 +up 3 +forward 1 +forward 3 +forward 7 +down 9 +forward 7 +forward 3 +up 6 +forward 4 +down 9 +forward 2 +down 4 +up 2 +down 1 +up 1 +down 6 +forward 1 +up 6 +up 7 +forward 3 +forward 3 +forward 2 +forward 1 +down 7 +forward 9 +down 5 +down 9 +up 9 +forward 3 +forward 8 +down 3 +forward 9 +forward 4 +down 3 +up 4 +up 8 +up 4 +down 8 +down 6 +down 5 +forward 2 +up 6 +up 1 +up 9 +down 4 +up 8 +forward 6 +down 1 +forward 7 +up 2 +forward 6 +up 2 +down 6 +down 5 +forward 2 +down 2 +down 1 +forward 8 +forward 1 +up 9 +forward 3 +down 6 +forward 2 +forward 8 +down 3 +forward 3 +forward 4 +forward 7 +forward 2 +up 4 +forward 8 +forward 1 +forward 9 +down 3 +down 1 +forward 8 +down 5 +down 3 +forward 5 +down 7 +down 1 +forward 8 +forward 2 +forward 4 +forward 8 +forward 6 +down 1 +forward 5 +forward 9 +forward 9 +up 9 +forward 9 +forward 4 +down 5 +down 2 +down 3 +forward 8 +forward 9 +up 8 +up 1 +up 6 +forward 7 +up 9 +forward 2 +forward 6 +up 6 +forward 3 +up 4 +forward 1 +down 4 +up 6 +down 5 +forward 7 +forward 6 +down 3 +down 4 +forward 3 +down 6 +down 1 +forward 5 +forward 7 +up 8 +forward 4 +up 7 +down 4 +forward 3 +down 7 +forward 7 +forward 4 +forward 1 +forward 8 +up 5 +up 6 +forward 5 +forward 3 +down 6 +forward 8 +forward 2 +forward 7 +down 7 +down 8 +down 3 +up 3 +down 1 +down 1 +forward 6 +forward 9 +forward 4 +forward 9 +forward 6 +down 1 +forward 9 +down 6 +down 8 +up 5 +down 8 +forward 4 +forward 2 +up 6 +down 9 +forward 6 +down 9 +down 6 +down 6 +forward 2 +up 8 +down 7 +down 2 +forward 2 +forward 2 +down 1 +up 8 +down 5 +forward 9 +forward 5 +forward 8 +forward 8 +forward 1 +down 2 +down 7 +up 5 +forward 9 +forward 4 +forward 4 +forward 6 +down 7 +up 5 +forward 5 +up 9 +down 7 +down 4 +down 9 +forward 7 +up 4 +down 1 +down 6 +up 2 +up 6 +down 2 +forward 9 +down 3 +forward 3 +forward 4 +forward 1 +up 2 +forward 6 +down 3 +forward 2 +down 9 +forward 8 +forward 3 +forward 2 +up 5 +forward 3 +forward 1 +down 8 +up 2 +up 4 +up 5 +down 3 +down 6 +down 1 +forward 4 +up 3 +down 1 +down 4 +up 6 +forward 8 +down 5 +down 7 +down 7 +forward 9 +forward 9 +down 2 +up 2 +down 5 +forward 5 +forward 4 +down 7 +forward 4 +down 2 +forward 2 +forward 4 +up 8 +down 8 +up 4 +forward 2 +forward 2 +up 8 +forward 2 +down 3 +down 7 +down 9 +up 6 +up 3 +forward 2 +forward 3 +up 8 +forward 6 +up 8 +up 1 +down 6 +down 8 +up 9 +down 1 +up 8 +forward 9 +forward 4 +forward 9 +forward 8 +forward 1 +down 6 +down 7 +up 5 +down 1 +forward 9 +down 9 +forward 7 +down 5 +forward 7 +down 1 +down 4 +down 4 +forward 6 +forward 1 +up 4 +up 2 +forward 7 +down 6 +down 2 +down 3 +up 7 +up 1 +down 6 +down 6 +down 8 +down 8 +forward 5 +forward 1 +forward 5 +up 8 +forward 8 +up 8 +forward 1 +down 9 +forward 1 +up 7 +up 3 +down 1 +down 9 +up 2 +down 3 +down 2 +forward 9 +up 9 +up 1 +up 5 +forward 8 +down 3 +down 7 +forward 7 +down 8 +down 5 +down 5 +down 4 +down 7 +forward 6 +forward 6 +forward 4 +forward 6 +forward 3 +up 5 +forward 2 +down 7 +forward 1 +down 4 +down 7 +down 7 +forward 4 +down 2 +up 4 +forward 2 +up 2 +up 3 +down 5 +forward 3 +down 2 +forward 5 +down 2 +down 1 +up 4 +up 5 +up 9 +forward 1 +forward 9 +down 9 +up 8 +forward 9 +forward 7 +down 9 +down 2 +down 9 +forward 9 +forward 7 +up 7 +forward 6 +up 6 +forward 5 +forward 6 +down 4 +forward 8 +forward 5 +forward 2 +up 4 +down 4 +forward 1 +down 2 +up 9 +up 7 +up 2 +up 3 +down 9 +forward 4 +up 6 +forward 5 +forward 5 +forward 9 +forward 1 +down 6 +forward 8 +down 5 +up 3 +up 1 +down 2 +up 4 +down 1 +down 9 +forward 8 +down 2 +forward 7 +down 7 +up 5 +down 7 +down 3 +forward 2 +forward 2 +forward 4 +down 9 +down 6 +down 9 +forward 6 +down 6 +down 9 +forward 1 +down 1 +forward 8 +down 4 +up 6 +down 2 +forward 9 +down 3 +up 3 +down 2 +up 2 +up 5 +down 8 +forward 1 +forward 3 +down 8 +up 3 +up 3 +up 3 +forward 2 +up 3 +down 4 +down 1 +down 7 +forward 3 +down 3 +down 8 +down 9 +forward 9 +forward 3 +up 4 +forward 8 +forward 8 +up 7 +up 3 +forward 6 +down 9 +up 1 +forward 2 +down 6 +up 6 +forward 2 +down 6 +down 3 +up 7 +forward 6 +down 6 +down 1 +down 5 +forward 6 +up 2 +down 2 +down 3 +down 1 +up 9 +forward 6 +up 2 +forward 2 +down 6 +up 3 +up 4 +forward 8 +up 8 +up 4 +down 7 +down 4 +up 9 +forward 9 +up 6 +forward 5 +forward 7 +forward 2 +forward 8 +down 7 +down 5 +down 4 +up 3 +forward 7 +down 2 +forward 5 +forward 9 +forward 4 +forward 7 +forward 8 +up 6 +down 1 +forward 3 +forward 9 +forward 1 +down 8 +down 1 +down 3 +down 1 +down 1 +up 3 +down 5 +up 1 +down 8 +down 2 +down 8 +down 3 +forward 2 +forward 8 +forward 4 +down 8 +down 6 +forward 8 +down 7 +forward 8 +forward 2 +forward 6 +forward 6 +forward 4 +up 2 +forward 3 +up 8 +forward 7 +forward 4 +down 8 +down 3 +down 4 +up 8 +forward 5 +forward 3 +up 4 +up 2 +down 6 +forward 4 +up 8 +up 3 +up 8 +down 3 +up 1 +forward 2 +down 4 +down 4 +down 9 +down 5 +forward 9 +up 6 +up 5 +down 8 +down 6 +down 7 +forward 8 +forward 4 +up 4 +forward 1 +down 4 +up 4 +down 9 +up 6 +down 9 +up 3 +forward 4 +down 1 +down 5 +down 5 +up 1 +down 8 +down 9 +down 1 +forward 4 +down 8 +down 6 +down 1 +forward 2 +down 5 +up 1 +up 1 +down 1 +down 3 +down 3 +down 8 +down 6 +down 5 +down 3 +up 3 +forward 5 +down 7 +down 7 +forward 2 +forward 6 +forward 1 +down 8 +forward 2 +up 2 +forward 2 +down 2 +forward 7 +down 7 +down 9 +up 2 +up 2 +down 3 +forward 1 +down 1 +forward 5 +forward 4 +down 4 +forward 6 +forward 2 +forward 7 +forward 2 +forward 8 +down 4 +up 3 +down 3 +up 9 +down 7 +up 8 +down 1 +down 8 +up 9 +down 6 +up 5 +up 8 +down 2 +down 3 +forward 1 +down 5 +down 5 +forward 8 +down 9 +forward 7 +forward 8 +down 1 +down 2 +up 8 +down 2 +up 5 +down 3 +forward 5 +forward 6 +up 4 +up 3 +forward 5 +forward 1 +down 2 +forward 2 +down 9 +up 7 +down 2 +up 8 +forward 2 +forward 2 +up 4 +forward 5 +down 4 +up 6 +up 8 +forward 9 +up 1 +forward 9 +forward 7 +forward 3 +forward 1 +down 1 +forward 5 +forward 2 +forward 6 +forward 6 +forward 3 +forward 7 +up 7 +down 6 +down 2 +up 5 +down 5 +up 2 +forward 7 +forward 2 +down 9 +up 4 +down 5 +down 3 +forward 7 +down 2 +forward 9 +forward 6 +down 3 +down 3 +forward 6 +down 9 +forward 7 +up 5 +up 6 +down 3 +up 4 +forward 4 +up 3 +down 8 +down 9 +down 9 +down 4 +up 1 +up 2 +down 3 +forward 4 +forward 5 +down 1 +up 3 +down 8 +down 7 +forward 2 +up 4 +down 8 +forward 1 +forward 6 +up 8 +down 2 +down 6 +forward 5 +up 8 +forward 7 +down 9 +forward 9 +down 3 +forward 9 +forward 1 +forward 6 +up 7 +forward 1 +down 5 +down 8 +down 3 +forward 5 +forward 6 +down 7 +forward 4 +down 6 +forward 4 +up 4 +down 4 +forward 4 +down 9 +forward 3 +down 6 +forward 3 +down 3 +up 3 +forward 3 +down 4 +down 4 +down 4 +down 5 +forward 5 +down 9 +down 7 +down 1 +forward 5 +forward 3 +forward 8 +down 5 +forward 4 +forward 3 +down 8 +forward 1 +forward 1 +down 6 +forward 4 +down 5 +forward 8 +down 7 +forward 6 +down 7 +up 2 +forward 6 +down 7 +down 3 +down 6 +up 2 +forward 8 +forward 5 +down 6 +forward 5 +up 7 +forward 8 +down 1 +forward 2 +up 7 +down 4 +up 5 +forward 5 +forward 4 +forward 3 +down 1 +forward 8 +up 9 +down 2 +up 4 +forward 7 +up 6 +forward 3 +down 8 +forward 4 +down 2 +down 9 +forward 8 +down 5 +forward 3 +down 9 +up 1 +forward 6 +up 9 +down 7 +forward 5 +forward 3 +down 8 +down 6 +up 3 +down 5 +forward 7 +up 2 +forward 4 +up 1 +down 8 +down 7 +forward 3 +forward 1 +down 3 +down 8 +forward 7 +up 2 +down 7 +up 6 +down 7 +down 1 +down 3 +up 6 +forward 2 +down 5 +forward 1 +forward 7 +forward 2 +down 8 +down 8 +down 7 +forward 7 +forward 5 +forward 1 +forward 7 +forward 3 +down 2 +up 8 +up 4 +up 6 +down 2 +down 1 +down 5 +down 3 +forward 2 +up 1 +forward 8 +up 8 +forward 7 +up 1 +down 7 +forward 7 +forward 5 +forward 3 +up 4 +down 5 +down 5 +forward 3 +forward 9 +down 9 +up 6 +up 7 +down 7 +forward 7 diff --git a/day-2.scm b/day-2.scm new file mode 100644 index 0000000..c3c2b21 --- /dev/null +++ b/day-2.scm @@ -0,0 +1,41 @@ +(define (get-word text-port) + (let loop [(w '())] + (let [(c (get-char text-port))] + (if (or (eof-object? c) (char-whitespace? c)) + (list->string (reverse w)) + (loop (cons c w)))))) + +(let [(file (open-input-file "day-2.input"))] + (let loop [(x 0) (y 0)] + (let [(amount (string->number (get-word file))) + (move (get-word file))] + (cond + ((string=? move "forward") + (loop (+ x amount) y)) + ((string=? move "down") + (loop x (+ y amount))) + ((string=? move "up") + (loop x (- y amount))) + (else + (display "part 1: ") + (display (* x y)) + (newline)))))) + +(let [(file (open-input-file "day-2.input"))] + (let loop [(x 0) (y 0) (aim 0)] + (let [(amount (string->number (get-word file))) + (move (get-word file))] + (cond + ((string=? move "forward") + (loop + (+ x amount) + (+ y (* aim amount)) + aim)) + ((string=? move "down") + (loop x y (+ aim amount))) + ((string=? move "up") + (loop x y (- aim amount))) + (else + (display "part 2: ") + (display (* x y)) + (newline))))))