Day 24: Minor adjustments for pretty
This commit is contained in:
parent
8e6b427a8f
commit
123ed9edc0
31
src/24.rkt
31
src/24.rkt
|
@ -8,17 +8,17 @@
|
||||||
(define input (map parse (problem-input 24)))
|
(define input (map parse (problem-input 24)))
|
||||||
|
|
||||||
(define (walk path)
|
(define (walk path)
|
||||||
(let loop ([coord (list 0 0)]
|
(for/fold ([x 0]
|
||||||
[path path])
|
[y 0]
|
||||||
(if (empty? path)
|
#:result (list x y))
|
||||||
coord
|
([dir path])
|
||||||
(match (list (first path) coord)
|
(match dir
|
||||||
[`(e (,x ,y)) (loop (list (add1 x) y) (rest path))]
|
['e (values (add1 x) y)]
|
||||||
[`(w (,x ,y)) (loop (list (sub1 x) y) (rest path))]
|
['w (values (sub1 x) y)]
|
||||||
[`(se (,x ,y)) (loop (list x (add1 y)) (rest path))]
|
['se (values x (add1 y))]
|
||||||
[`(nw (,x ,y)) (loop (list x (sub1 y)) (rest path))]
|
['nw (values x (sub1 y))]
|
||||||
[`(ne (,x ,y)) (loop (list (add1 x) (sub1 y)) (rest path))]
|
['ne (values (add1 x) (sub1 y))]
|
||||||
[`(sw (,x ,y)) (loop (list (sub1 x) (add1 y)) (rest path))]))))
|
['sw (values (sub1 x) (add1 y))])))
|
||||||
|
|
||||||
(define (keep-flipped coords)
|
(define (keep-flipped coords)
|
||||||
(for/fold ([keep (set)])
|
(for/fold ([keep (set)])
|
||||||
|
@ -29,9 +29,12 @@
|
||||||
|
|
||||||
(define (neighbours coord)
|
(define (neighbours coord)
|
||||||
(match-let ([(list x y) coord])
|
(match-let ([(list x y) coord])
|
||||||
(list (list (add1 x) y) (list (sub1 x) y)
|
`((,(add1 x) ,y)
|
||||||
(list x (add1 y)) (list x (sub1 y))
|
(,(sub1 x) ,y)
|
||||||
(list (add1 x) (sub1 y)) (list (sub1 x) (add1 y)))))
|
(,x ,(add1 y))
|
||||||
|
(,x ,(sub1 y))
|
||||||
|
(,(add1 x) ,(sub1 y))
|
||||||
|
(,(sub1 x) ,(add1 y)))))
|
||||||
|
|
||||||
(define (flip coords)
|
(define (flip coords)
|
||||||
(let* ([xs (set-map coords first)] [min-x (sub1 (apply min xs))] [max-x (add1 (apply max xs))]
|
(let* ([xs (set-map coords first)] [min-x (sub1 (apply min xs))] [max-x (add1 (apply max xs))]
|
||||||
|
|
Loading…
Reference in New Issue