diff options
author | H.J <thechairman@thechairman.info> | 2024-10-09 11:36:55 -0400 |
---|---|---|
committer | H.J <thechairman@thechairman.info> | 2024-10-09 11:36:55 -0400 |
commit | 8777ff071f7bb37631baa7b6717ad29961e50911 (patch) | |
tree | 6d59c4ed58e454b960339c3d1151f0a879e8d7cb /aoc2022/day-17 | |
parent | 6156a9ef7be4012063a042aafb4e9b0d7eadde8e (diff) | |
download | gleam_aoc-8777ff071f7bb37631baa7b6717ad29961e50911.tar.gz gleam_aoc-8777ff071f7bb37631baa7b6717ad29961e50911.zip |
sorting by language
Diffstat (limited to 'aoc2022/day-17')
-rw-r--r-- | aoc2022/day-17/day-17.rkt | 53 | ||||
-rw-r--r-- | aoc2022/day-17/rock-shapes | 17 |
2 files changed, 0 insertions, 70 deletions
diff --git a/aoc2022/day-17/day-17.rkt b/aoc2022/day-17/day-17.rkt deleted file mode 100644 index 28e8763..0000000 --- a/aoc2022/day-17/day-17.rkt +++ /dev/null @@ -1,53 +0,0 @@ -#lang racket - -(require advent-of-code - threading - fancy-app - data/collection) - -(define (relative-rock-coordinates rock) - (for*/hash ([(row y) (in-indexed (reverse rock))] [(_col x) (in-indexed row)]) - (values (cons x y) #true))) - -(define rock-shapes - (~> (open-input-file "./2022/day-17/rock-shapes") - port->string - (string-split "\n\n") - (map (λ~> (string-split _ "\n") (map string->list _) relative-rock-coordinates) _))) - -(define gusts - (~> (fetch-aoc-input (find-session) 2022 17 #:cache #true) - string-trim - string->list - (map (match-lambda - [#\> 1] - [#\< -1]) - _))) - -(define (place-new-rock rock elevation) - (for/hash ([(posn _) (in-hash rock)]) - (match-define (cons x y) posn) - (values (cons (+ x 3) (+ y elevation 4)) #true))) - -(define (gust-move rock wind cave) - (define moved-rock - (for/hash ([(posn _) (in-hash rock)]) - (match-define (cons x y) posn) - (define posn* (cons (+ x wind) y)) - (if (hash-has-key? cave posn) (values 'collision #t) (values posn* #t)))) - (if (hash-has-key? moved-rock 'collision) rock moved-rock)) - -(for/fold ([cave (hash)] - [falling-rock #f] - [top-of-rocks 0] - [rock-cycle (cycle rock-shapes)] - [rock-number 0] - #:result top-of-rocks) - (#:break (> rock-number 2022) [gust (in-cycle gusts)]) - (cond - [(not falling-rock) - (values cave - (~> (first rock-cycle) (place-new-rock top-of-rocks) (gust-move gust cave)) - top-of-rocks - (rest rock-cycle) - (add1 rock-number))])) diff --git a/aoc2022/day-17/rock-shapes b/aoc2022/day-17/rock-shapes deleted file mode 100644 index fbcc382..0000000 --- a/aoc2022/day-17/rock-shapes +++ /dev/null @@ -1,17 +0,0 @@ -#### - -.#. -### -.#. - -..# -..# -### - -# -# -# -# - -## -##
\ No newline at end of file |