diff options
Diffstat (limited to '2022')
| -rw-r--r-- | 2022/Day09/input-po.txt | 2000 | ||||
| -rw-r--r-- | 2022/Day09/part-one.cl | 37 |
2 files changed, 2037 insertions, 0 deletions
diff --git a/2022/Day09/input-po.txt b/2022/Day09/input-po.txt new file mode 100644 index 0000000..63f30fc --- /dev/null +++ b/2022/Day09/input-po.txt @@ -0,0 +1,2000 @@ +U 1 +R 2 +D 2 +U 2 +L 1 +U 1 +R 1 +U 2 +R 1 +D 1 +U 2 +L 1 +R 1 +U 1 +L 1 +D 1 +L 1 +D 1 +U 2 +R 2 +U 1 +L 1 +R 2 +U 2 +L 2 +U 2 +R 2 +D 2 +R 1 +U 2 +L 2 +U 1 +R 1 +L 2 +U 2 +R 2 +L 1 +R 2 +L 1 +D 1 +R 2 +L 2 +D 2 +L 1 +D 1 +L 2 +U 1 +R 2 +L 2 +U 2 +D 2 +R 2 +D 2 +L 2 +D 2 +L 1 +D 2 +L 1 +R 2 +L 2 +R 1 +D 2 +U 1 +R 2 +L 1 +R 2 +D 1 +U 1 +R 1 +U 2 +D 2 +R 1 +D 1 +U 1 +L 2 +D 2 +U 1 +R 2 +L 2 +R 1 +D 2 +L 1 +U 1 +D 1 +U 2 +D 1 +U 1 +D 2 +R 2 +L 1 +D 1 +U 1 +R 1 +L 2 +D 1 +L 2 +R 1 +L 2 +U 2 +R 1 +L 2 +D 2 +L 2 +U 2 +L 1 +U 2 +R 2 +L 2 +R 2 +L 2 +U 1 +L 1 +U 1 +D 1 +U 3 +R 2 +L 3 +R 2 +D 2 +U 3 +R 1 +L 3 +D 1 +U 3 +R 2 +D 1 +U 3 +R 2 +L 3 +R 3 +L 2 +R 1 +U 2 +R 2 +U 3 +D 1 +U 3 +L 2 +D 1 +R 2 +U 3 +R 3 +L 3 +D 3 +R 3 +U 3 +L 3 +U 1 +L 2 +U 3 +L 1 +U 1 +D 3 +R 3 +U 1 +R 1 +U 1 +L 3 +R 2 +U 2 +L 3 +D 1 +L 2 +D 2 +L 2 +R 2 +U 3 +D 3 +R 2 +U 3 +L 2 +U 1 +D 2 +R 3 +L 1 +U 1 +R 2 +D 3 +L 1 +R 1 +U 1 +D 3 +R 2 +D 3 +R 2 +U 1 +L 2 +U 1 +R 2 +U 1 +R 2 +L 2 +U 2 +R 3 +L 3 +D 2 +L 1 +R 3 +D 1 +U 1 +L 2 +R 1 +D 3 +U 3 +D 3 +U 1 +R 2 +L 3 +R 1 +L 3 +R 2 +D 2 +U 1 +D 1 +L 3 +R 1 +L 3 +R 3 +L 1 +D 2 +L 3 +U 2 +D 1 +L 1 +U 2 +R 3 +L 2 +R 3 +U 3 +L 2 +D 4 +U 4 +R 3 +U 2 +L 1 +U 3 +D 4 +L 2 +U 3 +L 4 +D 4 +R 3 +D 3 +R 1 +D 2 +L 1 +R 2 +D 3 +L 1 +R 2 +U 3 +D 4 +R 4 +L 2 +R 4 +U 3 +R 4 +U 4 +L 4 +D 3 +R 4 +D 1 +U 3 +L 3 +R 1 +U 2 +R 3 +U 4 +D 2 +U 3 +D 2 +L 2 +D 3 +L 4 +R 2 +U 2 +L 2 +U 4 +D 2 +U 4 +L 4 +U 2 +R 3 +D 4 +U 4 +L 3 +D 3 +R 4 +L 3 +R 2 +L 4 +U 3 +D 2 +L 4 +R 1 +U 2 +L 3 +D 1 +R 2 +U 2 +D 4 +R 1 +U 1 +R 2 +D 2 +L 3 +R 1 +U 2 +R 1 +D 4 +U 1 +R 1 +U 3 +D 1 +U 2 +D 3 +U 3 +L 2 +U 4 +R 1 +L 2 +D 2 +L 2 +D 3 +U 3 +L 3 +U 1 +D 1 +R 1 +D 2 +L 2 +U 2 +D 3 +R 1 +L 4 +U 3 +L 5 +R 5 +L 4 +D 4 +R 4 +L 4 +R 4 +L 2 +R 3 +D 3 +R 2 +L 4 +R 2 +U 5 +D 5 +U 1 +R 4 +U 2 +R 3 +L 4 +D 2 +U 3 +D 4 +U 2 +D 5 +L 5 +R 2 +U 3 +R 1 +D 1 +R 4 +U 5 +R 3 +L 3 +U 3 +L 1 +U 5 +D 2 +U 3 +R 1 +D 5 +L 4 +U 3 +D 1 +L 3 +R 2 +U 1 +L 2 +R 2 +D 4 +R 2 +L 3 +U 2 +D 1 +L 1 +R 4 +L 1 +D 2 +R 1 +L 5 +R 4 +U 2 +R 2 +U 1 +D 3 +R 3 +L 1 +U 5 +R 2 +D 3 +U 3 +R 1 +U 4 +R 1 +D 2 +L 1 +D 4 +L 1 +R 5 +L 5 +R 5 +L 1 +U 5 +R 2 +U 5 +L 2 +D 3 +U 5 +L 4 +D 5 +U 2 +R 2 +D 2 +R 4 +L 4 +D 5 +R 2 +L 2 +R 5 +U 2 +L 1 +U 2 +D 2 +R 5 +U 1 +L 5 +R 1 +L 4 +D 4 +L 3 +D 4 +U 2 +L 2 +D 5 +U 4 +R 3 +L 6 +D 3 +R 2 +U 2 +L 2 +U 1 +R 6 +U 5 +R 2 +U 2 +R 1 +U 5 +L 3 +U 2 +R 5 +L 3 +U 3 +D 2 +U 5 +L 5 +U 4 +R 6 +D 2 +L 6 +U 1 +L 5 +D 4 +U 3 +D 3 +U 5 +L 6 +U 4 +D 3 +U 4 +D 6 +R 1 +U 4 +L 1 +D 4 +U 5 +R 2 +L 3 +R 2 +U 2 +D 1 +L 3 +R 6 +L 2 +U 5 +L 3 +D 1 +L 2 +D 4 +U 4 +L 4 +D 1 +L 2 +D 2 +R 5 +L 2 +R 2 +L 3 +R 2 +U 2 +L 1 +U 4 +D 4 +R 5 +L 3 +U 2 +D 3 +R 6 +D 3 +R 3 +L 4 +U 5 +D 3 +R 5 +U 4 +R 2 +U 4 +L 1 +U 6 +D 6 +L 1 +R 2 +U 6 +D 5 +L 1 +U 3 +L 1 +D 6 +L 3 +U 4 +D 6 +U 4 +D 3 +L 3 +U 5 +R 2 +L 5 +D 3 +R 2 +D 2 +U 1 +D 2 +R 2 +U 5 +R 4 +U 1 +R 5 +D 2 +R 2 +U 5 +L 6 +U 3 +L 7 +D 1 +R 4 +D 4 +R 7 +L 7 +U 7 +D 4 +L 4 +R 6 +U 6 +L 7 +R 3 +L 6 +U 6 +R 5 +D 4 +L 6 +U 1 +R 6 +D 3 +U 5 +D 3 +U 2 +R 7 +U 5 +D 5 +L 2 +D 2 +U 4 +L 3 +D 1 +L 1 +R 2 +L 2 +R 6 +D 4 +L 7 +D 7 +R 4 +L 6 +R 3 +L 3 +U 7 +R 3 +L 5 +D 6 +R 3 +U 5 +D 3 +L 4 +U 7 +R 6 +D 6 +U 5 +R 3 +L 3 +R 6 +L 3 +D 1 +L 3 +U 5 +D 2 +L 3 +R 4 +L 7 +R 5 +U 3 +L 7 +D 5 +U 6 +D 5 +L 6 +R 6 +L 1 +R 3 +D 4 +L 5 +R 2 +U 4 +R 2 +D 4 +R 3 +D 2 +L 3 +R 2 +L 4 +R 5 +U 7 +L 7 +D 3 +R 5 +L 1 +U 4 +R 5 +U 4 +R 6 +L 1 +R 4 +D 8 +L 2 +U 7 +L 3 +R 3 +U 1 +D 8 +U 5 +D 3 +R 3 +L 2 +U 2 +D 8 +R 3 +U 4 +L 6 +D 7 +R 7 +U 6 +L 7 +U 5 +R 1 +L 2 +U 4 +D 1 +L 6 +D 5 +R 7 +U 7 +R 8 +L 7 +U 7 +D 3 +L 3 +D 4 +L 1 +R 6 +D 5 +U 1 +D 8 +R 1 +L 2 +U 1 +D 2 +L 3 +R 7 +L 2 +D 8 +R 5 +U 6 +D 4 +L 1 +U 6 +R 1 +D 4 +R 4 +L 2 +D 4 +R 1 +U 2 +R 8 +L 6 +R 8 +U 8 +L 3 +R 6 +D 3 +R 2 +L 3 +U 6 +D 6 +U 4 +R 7 +L 3 +R 2 +L 4 +U 3 +R 7 +D 8 +R 1 +D 6 +U 7 +R 2 +U 2 +L 6 +U 5 +R 1 +D 1 +R 6 +L 2 +U 3 +D 2 +L 2 +D 5 +R 4 +L 1 +D 7 +R 6 +D 4 +U 2 +D 5 +U 3 +D 8 +U 6 +R 5 +L 6 +U 7 +L 3 +R 8 +U 3 +L 2 +R 3 +L 5 +R 3 +L 2 +U 9 +D 2 +U 5 +R 7 +U 9 +L 9 +R 6 +L 7 +D 1 +L 4 +D 3 +R 7 +L 6 +R 9 +D 6 +R 4 +D 8 +L 1 +U 5 +R 9 +D 9 +U 6 +L 5 +R 4 +D 2 +R 5 +D 1 +R 6 +D 3 +R 8 +L 1 +U 2 +R 5 +U 3 +L 1 +R 8 +D 6 +L 5 +D 7 +R 3 +U 2 +L 7 +U 3 +D 4 +L 2 +R 8 +D 6 +L 3 +U 5 +L 1 +U 5 +L 4 +R 7 +U 6 +R 1 +D 3 +U 3 +D 2 +R 4 +L 5 +U 2 +R 6 +L 8 +U 6 +L 9 +D 3 +R 3 +U 9 +D 8 +L 2 +R 7 +D 6 +R 1 +D 8 +U 8 +D 2 +U 4 +D 8 +L 9 +R 8 +D 8 +R 7 +U 8 +L 8 +U 8 +R 7 +L 8 +U 3 +D 6 +R 7 +D 2 +L 5 +U 8 +D 7 +U 6 +R 3 +D 7 +U 9 +L 7 +R 3 +L 1 +U 9 +L 7 +U 2 +D 7 +L 5 +R 9 +D 2 +R 7 +U 6 +D 7 +U 3 +R 8 +U 9 +L 8 +R 8 +D 10 +L 7 +R 3 +U 5 +R 5 +D 9 +U 10 +L 2 +D 4 +L 2 +U 1 +D 3 +L 3 +U 7 +D 6 +L 6 +D 7 +L 8 +U 1 +D 9 +L 7 +U 4 +L 3 +U 6 +D 2 +L 5 +U 10 +D 9 +U 8 +D 1 +R 10 +U 4 +L 1 +R 7 +U 2 +L 5 +D 5 +R 7 +D 1 +R 4 +U 2 +D 6 +L 7 +U 10 +R 3 +L 9 +D 7 +L 2 +R 5 +U 10 +D 10 +R 9 +D 5 +U 3 +L 7 +D 5 +U 6 +D 7 +L 6 +D 10 +R 7 +U 8 +L 4 +D 9 +L 4 +U 5 +R 9 +U 9 +R 3 +U 2 +R 2 +D 1 +R 1 +U 6 +R 8 +D 10 +U 2 +D 9 +L 8 +R 1 +D 1 +L 9 +R 8 +D 9 +R 5 +L 9 +U 10 +D 4 +R 7 +U 4 +L 3 +U 8 +L 2 +U 9 +D 9 +L 1 +R 4 +U 2 +L 4 +U 3 +D 7 +U 11 +R 6 +U 9 +D 6 +R 7 +L 1 +D 7 +R 2 +D 6 +U 2 +L 2 +U 4 +R 6 +U 6 +L 11 +D 7 +R 9 +L 2 +D 10 +L 10 +U 4 +L 6 +D 11 +U 9 +L 1 +R 10 +L 7 +R 4 +D 5 +L 3 +U 2 +R 9 +L 9 +D 1 +L 11 +D 5 +U 6 +D 5 +U 9 +R 1 +L 7 +U 3 +R 7 +L 2 +D 6 +R 3 +U 2 +D 5 +R 9 +L 3 +D 11 +U 9 +D 11 +R 2 +D 7 +R 9 +U 4 +D 6 +U 7 +R 10 +D 3 +L 4 +R 9 +D 3 +L 7 +R 7 +L 11 +D 6 +R 9 +D 9 +R 3 +U 3 +R 3 +L 6 +D 11 +R 2 +L 10 +U 2 +R 2 +D 11 +R 7 +D 8 +R 2 +D 10 +U 5 +D 3 +L 10 +R 1 +D 5 +R 4 +L 10 +U 5 +D 9 +U 2 +L 3 +U 3 +R 5 +D 4 +L 1 +D 1 +R 10 +L 4 +D 8 +L 5 +D 5 +L 3 +D 5 +L 3 +R 1 +L 3 +R 4 +U 9 +R 4 +D 12 +L 5 +R 4 +L 11 +D 10 +U 3 +R 2 +U 5 +L 6 +D 5 +U 5 +D 10 +R 12 +L 2 +R 10 +D 11 +R 12 +U 5 +R 4 +L 4 +U 2 +R 12 +L 6 +D 3 +R 2 +D 1 +U 9 +L 6 +U 6 +L 10 +D 8 +R 9 +L 1 +U 1 +D 5 +U 4 +R 10 +U 5 +R 10 +D 12 +U 6 +D 9 +U 3 +L 8 +R 8 +D 7 +L 6 +U 7 +R 1 +U 6 +D 9 +R 2 +U 11 +D 7 +L 12 +D 6 +L 5 +U 8 +R 8 +L 8 +D 3 +R 7 +L 11 +D 1 +L 5 +D 5 +U 8 +D 2 +R 8 +L 6 +D 7 +L 3 +D 3 +U 9 +L 1 +U 8 +D 7 +L 8 +U 4 +R 12 +U 7 +L 10 +D 4 +U 7 +D 7 +U 5 +L 4 +R 9 +D 5 +R 4 +U 2 +R 1 +D 9 +U 7 +R 9 +U 12 +D 4 +R 8 +U 4 +D 10 +L 10 +D 11 +L 8 +R 11 +U 5 +D 4 +L 3 +D 1 +U 7 +L 5 +R 13 +L 2 +R 9 +L 6 +R 6 +L 2 +U 10 +D 11 +U 13 +R 11 +U 6 +L 7 +D 11 +R 7 +U 4 +L 1 +D 9 +R 7 +L 11 +U 13 +L 8 +R 12 +U 5 +R 9 +U 11 +R 3 +D 11 +U 9 +L 8 +U 6 +D 6 +L 11 +U 4 +D 3 +U 11 +D 1 +L 6 +U 5 +R 10 +L 10 +R 8 +L 12 +R 4 +U 3 +R 8 +L 8 +U 4 +L 10 +U 9 +R 8 +U 3 +D 2 +U 4 +D 10 +L 6 +R 10 +U 8 +L 9 +R 13 +D 8 +U 10 +D 10 +L 13 +U 1 +R 4 +U 11 +D 12 +L 1 +R 2 +U 12 +D 7 +U 9 +R 13 +U 5 +D 6 +R 4 +L 6 +U 9 +L 5 +U 8 +D 4 +L 5 +U 6 +L 8 +U 1 +R 3 +U 8 +R 2 +D 5 +U 12 +D 9 +L 2 +U 3 +R 11 +U 9 +R 7 +D 10 +U 2 +L 3 +D 3 +U 9 +D 6 +U 1 +R 9 +L 5 +R 2 +L 2 +R 11 +D 7 +L 10 +U 13 +L 6 +R 11 +U 6 +D 11 +U 4 +R 10 +D 5 +R 4 +L 6 +U 3 +L 8 +D 6 +U 14 +R 3 +U 1 +L 6 +R 7 +U 9 +L 9 +D 10 +U 10 +D 12 +R 9 +D 12 +R 4 +D 12 +U 9 +R 9 +U 2 +L 11 +D 13 +U 12 +L 7 +D 14 +R 4 +D 14 +U 11 +D 5 +R 10 +L 2 +D 11 +L 3 +U 9 +R 4 +L 8 +U 8 +R 7 +U 7 +D 5 +R 8 +U 5 +L 3 +R 7 +D 6 +R 12 +U 3 +D 8 +L 8 +U 3 +L 8 +R 7 +L 13 +U 2 +L 8 +U 14 +R 5 +L 1 +D 14 +R 10 +U 14 +R 6 +U 14 +D 5 +U 13 +D 1 +U 12 +R 7 +L 2 +U 4 +R 10 +U 8 +R 12 +L 2 +U 7 +D 9 +L 6 +D 3 +U 7 +L 11 +U 8 +R 7 +D 5 +U 5 +R 13 +D 9 +R 14 +U 8 +R 14 +D 8 +U 1 +L 13 +R 12 +D 7 +L 6 +R 3 +D 10 +R 10 +L 6 +D 12 +L 5 +U 14 +D 1 +U 8 +R 5 +D 15 +R 11 +D 10 +L 11 +D 13 +L 5 +D 3 +U 15 +R 6 +L 12 +R 12 +L 15 +U 5 +D 8 +R 13 +D 10 +R 4 +L 6 +U 8 +R 6 +D 15 +U 6 +L 13 +D 15 +U 11 +D 6 +U 7 +L 1 +R 5 +L 1 +U 7 +D 15 +L 1 +D 7 +U 6 +R 14 +D 4 +R 5 +U 4 +D 5 +R 13 +D 5 +L 1 +D 11 +L 3 +D 3 +R 13 +L 15 +D 4 +R 4 +U 5 +L 10 +U 14 +D 2 +R 9 +U 8 +R 1 +U 13 +L 5 +U 12 +R 10 +U 8 +L 9 +D 7 +R 10 +L 8 +R 13 +D 12 +L 2 +R 4 +D 14 +R 14 +D 2 +U 4 +D 14 +U 1 +L 3 +R 7 +L 2 +D 10 +R 10 +L 1 +R 5 +D 6 +L 5 +R 11 +U 15 +L 6 +D 4 +R 14 +D 6 +R 1 +L 12 +R 15 +L 10 +U 1 +D 3 +R 2 +D 2 +L 8 +U 9 +D 14 +L 4 +R 2 +U 14 +L 11 +D 12 +U 5 +L 11 +R 5 +U 14 +R 9 +U 12 +L 12 +D 9 +R 10 +D 4 +L 3 +U 4 +R 2 +D 9 +U 5 +L 13 +U 5 +R 15 +L 4 +R 10 +U 8 +R 3 +U 13 +D 4 +U 4 +L 8 +U 1 +D 13 +R 10 +U 13 +L 5 +U 7 +D 2 +U 15 +R 10 +U 12 +D 9 +R 12 +L 3 +D 7 +R 7 +L 3 +R 14 +L 9 +D 4 +R 8 +D 1 +R 1 +U 1 +R 14 +L 7 +R 10 +D 14 +L 1 +U 12 +D 8 +U 1 +R 13 +U 12 +D 4 +U 8 +L 8 +D 8 +L 4 +R 2 +D 6 +R 2 +L 3 +D 16 +R 6 +L 16 +D 16 +L 2 +R 16 +D 15 +L 1 +D 4 +U 3 +L 5 +U 4 +L 4 +D 9 +L 2 +R 8 +D 7 +U 7 +R 12 +U 12 +R 3 +D 8 +L 12 +D 12 +R 13 +U 8 +R 5 +U 2 +D 3 +U 11 +L 13 +R 4 +L 5 +R 9 +D 9 +U 14 +R 15 +L 16 +R 13 +D 11 +U 13 +L 10 +D 11 +L 10 +R 4 +U 7 +D 17 +U 7 +R 10 +U 11 +L 2 +D 8 +U 3 +R 14 +U 13 +D 8 +U 6 +L 2 +D 9 +L 1 +D 4 +U 16 +D 4 +L 13 +U 1 +D 13 +U 12 +R 17 +L 6 +R 17 +L 17 +R 13 +L 9 +U 12 +L 15 +R 17 +U 3 +R 2 +L 12 +U 7 +L 12 +U 9 +L 15 +R 9 +U 3 +L 13 +R 8 +L 3 +R 2 +L 17 +U 14 +D 16 +L 13 +D 2 +U 17 +D 6 +U 8 +L 5 +D 10 +L 3 +D 3 +R 7 +L 16 +R 8 +U 13 +L 17 +U 16 +L 9 +U 8 +D 12 +R 10 +U 11 +D 10 +L 17 +R 3 +D 7 +U 13 +D 11 +R 7 +D 16 +U 4 +R 12 +D 12 +U 11 +D 2 +L 9 +D 6 +L 4 +R 5 +L 13 +U 7 +L 12 +D 1 +L 15 +U 8 +R 4 +U 15 +R 15 +D 7 +R 8 +U 9 +R 5 +D 12 +R 12 +U 2 +D 13 +U 2 +L 6 +D 8 +U 12 +R 6 +D 16 +U 4 +R 9 +L 6 +U 18 +L 7 +R 15 +U 8 +D 18 +L 11 +R 16 +D 2 +R 7 +D 8 +L 10 +U 15 +L 13 +D 7 +R 13 +D 14 +R 2 +L 14 +D 4 +L 10 +R 13 +L 18 +U 15 +L 17 +R 18 +D 2 +U 7 +R 18 +D 4 +L 1 +U 12 +L 1 +U 16 +D 6 +R 7 +U 9 +L 1 +U 13 +R 2 +L 8 +D 5 +R 18 +D 16 +R 8 +D 2 +R 13 +L 16 +R 18 +L 10 +D 6 +U 4 +D 15 +U 3 +D 9 +R 17 +D 8 +L 4 +R 17 +D 15 +R 1 +D 18 +U 1 +R 5 +L 7 +D 18 +U 16 +D 2 +L 11 +R 7 +L 12 +D 2 +U 8 +L 17 +U 18 +L 10 +R 16 +L 5 +R 1 +L 10 +R 14 +L 4 +D 15 +R 8 +D 15 +L 12 +D 5 +U 11 +L 1 +R 8 +D 11 +U 5 +L 12 +D 11 +U 9 +D 12 +R 7 +D 11 +U 2 +R 15 +L 2 +R 8 +U 2 +D 8 +R 14 +L 4 +D 1 +U 4 +R 4 +D 2 +R 5 +D 9 +L 10 +U 8 +R 13 +D 15 +R 18 +D 5 +U 5 +L 1 +U 1 +R 9 +D 2 +U 6 +R 5 +U 5 +R 17 +L 2 +D 1 +R 3 +D 5 +U 13 +R 10 +D 10 +R 13 +D 5 +L 1 +U 14 +D 17 +U 15 +R 16 +L 9 +U 12 +L 17 +R 19 +U 1 +D 4 +U 14 +L 7 +R 16 +L 5 +D 4 +L 14 +U 13 +R 10 +L 19 +D 1 +R 17 +D 6 +L 19 +U 11 +L 14 +U 15 +D 10 +U 17 +R 16 +U 12 +L 13 +D 1 +R 11 +D 10 +L 4 +D 15 +L 18 +R 2 +U 5 +L 2 +U 9 +D 16 +R 8 +D 13 +R 19 +U 14 +L 10 +R 13 +U 3 +R 2 +U 11 +L 2 +R 2 +U 12 +L 14 +U 15 +R 6 +D 10 +R 8 +U 14 +D 9 +L 2 +U 3 +D 8 +U 7 +R 10 +U 16 +R 3 +U 9 +L 16 +D 1 +R 1 +U 12 +R 12 +U 8 +L 19 +U 14 +R 9 +U 5 +L 15 +U 7 +L 17 +U 16 +R 19 +U 17 +L 1 +D 7 diff --git a/2022/Day09/part-one.cl b/2022/Day09/part-one.cl new file mode 100644 index 0000000..9e44aa0 --- /dev/null +++ b/2022/Day09/part-one.cl @@ -0,0 +1,37 @@ +;;; https://gitlab.com/Syndamia/senzill +(require :senzill) +(use-package :senzill.math) +(use-package :senzill.collections) +(use-package :senzill.pair) +(use-package :senzill.io) + +(ask-for-stream (prog-input) + (let ((rhead '(0 . 0)) (rtail '(0 . 0)) (visited '((0 . 0))) (movec '())) + (flet ((p-longer-than-sqrt2 (c) + "If c is outside the 3x3 square" + (or (> (abs (car c)) 1) (> (abs (cdr c)) 1))) + + (movement-vec (c1 c2) + (cons (- (car c2) (car c1)) (- (cdr c2) (cdr c1)))) + + (dir-to-pair (direction) + (cond ((char= direction #\R) '( 1 . 0)) + ((char= direction #\L) '(-1 . 0)) + ((char= direction #\U) '( 0 . 1)) + ((char= direction #\D) '( 0 . -1))))) + + (doread-lines (inpt :read-line-options (prog-input NIL)) + (pair+= rhead (*pair (digit-char-p (char inpt 2)) + (dir-to-pair (char inpt 0)))) + + (setf movec (movement-vec rtail rhead)) + + (if (p-longer-than-sqrt2 movec) + (progn (setf movec (pair-round (dist-resize-by movec -1))) ; We dont want to move tail on the head, but behind it + (pair+= rtail movec) + + (loop for intermvec = movec then (pair-round (dist-resize-by intermvec -1)) + until (pair= intermvec '(0 . 0)) + if (not (member (pair- rtail intermvec) visited)) + do (push (pair- rtail intermvec) visited))))) + (print visited)))) |
