Last active
April 17, 2024 13:28
-
-
Save eclbg/58a1d8ca0ea7082e980d3a31a2c04aab to your computer and use it in GitHub Desktop.
Advent of Code Day 9 for RC
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Solution to Advent of Code 2022 Day 9 | |
# https://adventofcode.com/2022/day/9 | |
# Tested only in Python 3.11.0 | |
from typing import Tuple | |
class Knot: | |
def __init__(self) -> None: | |
self._position = (0, 0) | |
def move(self, prev_knot_pos: Tuple[int, int]) -> None: | |
xgap = prev_knot_pos[0] - self._position[0] | |
ygap = prev_knot_pos[1] - self._position[1] | |
# Means it's touching the previous knot. No movement. | |
if abs(xgap) <= 1 and abs(ygap) <= 1: | |
movement = (0, 0) | |
# Need to move knot horizontally | |
elif ygap == 0: | |
assert xgap in (-2, 2) | |
movement = ((xgap // abs(xgap)), 0) | |
# Need to move knot vertically | |
elif xgap == 0: | |
assert ygap in (-2, 2) | |
movement = (0, (ygap // abs(ygap))) | |
# Need to move knot diagonally | |
else: | |
movement = ((xgap // abs(xgap)), (ygap // abs(ygap))) | |
must_move = any(movement) | |
if must_move: | |
new_x = self._position[0] + movement[0] | |
new_y = self._position[1] + movement[1] | |
self._position = (new_x, new_y) | |
def get_pos(self) -> Tuple[int, int]: | |
return self._position | |
class Rope: | |
directions = { | |
"R": (1, 0), | |
"U": (0, 1), | |
"L": (-1, 0), | |
"D": (0, -1), | |
} | |
def __init__(self, num_knots) -> None: | |
self._head_pos = (0, 0) | |
self._knots = [Knot() for _ in range(num_knots - 1)] | |
def move_head(self, direction: str) -> None: | |
movement = self.directions[direction] | |
new_x = self._head_pos[0] + movement[0] | |
new_y = self._head_pos[1] + movement[1] | |
self._head_pos = (new_x, new_y) | |
self.move_knots() | |
def move_knots(self) -> None: | |
prev_knot_pos = self.get_head_pos() | |
for knot in self._knots: | |
knot.move(prev_knot_pos=prev_knot_pos) | |
new_pos = knot.get_pos() | |
has_moved = new_pos != prev_knot_pos | |
if has_moved is False: | |
break | |
prev_knot_pos = new_pos | |
def get_head_pos(self) -> Tuple[int, int]: | |
return self._head_pos | |
def get_tail_pos(self) -> Tuple[int, int]: | |
return self._knots[-1]._position | |
def part1(): | |
rope = Rope(num_knots=2) | |
tail_positions = set() | |
with open("puzzle_input.txt") as f: | |
for row in f: | |
row = row.strip() | |
direction, howmany = row.split() | |
for _ in range(int(howmany)): | |
rope.move_head(direction) | |
tail_positions.add(rope.get_tail_pos()) | |
return len(tail_positions) | |
def part2(): | |
rope = Rope(num_knots=10) | |
tail_positions = set() | |
with open("puzzle_input.txt") as f: | |
for row in f: | |
row = row.strip() | |
direction, howmany = row.split() | |
for _ in range(int(howmany)): | |
rope.move_head(direction) | |
tail_positions.add(rope.get_tail_pos()) | |
return len(tail_positions) | |
if __name__ == "__main__": | |
print(part1()) | |
print(part2()) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
REDUCED PUZZLE DESCRIPTION | |
ORIGINAL DESCRIPTION HERE: https://adventofcode.com/2022/day/9 | |
--- Day 9: Rope Bridge --- | |
This rope bridge creaks as you walk along it. You aren't sure how old it is, | |
or whether it can even support your weight. | |
It seems to support the Elves just fine, though. The bridge spans a gorge which | |
was carved out by the massive river far below you. | |
You step carefully; as you do, the ropes stretch and twist. You decide to | |
distract yourself by modeling rope physics; maybe you can even figure out | |
where not to step. | |
Consider a rope with a knot at each end; these knots mark the head and the | |
tail of the rope. If the head moves far enough away from the tail, the tail is | |
pulled toward the head. | |
Due to nebulous reasoning involving Planck lengths, you should be able to | |
model the positions of the knots on a two-dimensional grid. Then, by following | |
a hypothetical series of motions (your puzzle input) for the head, you can | |
determine how the tail will move. | |
Due to the aforementioned Planck lengths, the rope must be quite short; in | |
fact, the head (H) and tail (T) must always be touching (diagonally adjacent | |
and even overlapping both count as touching): | |
.... | |
.TH. | |
.... | |
.... | |
.H.. | |
..T. | |
.... | |
... | |
.H. (H covers T) | |
... | |
If the head is ever two steps directly up, down, left, or right from the tail, | |
the tail must also move one step in that direction so it remains close enough: | |
..... ..... ..... | |
.TH.. -> .T.H. -> ..TH. | |
..... ..... ..... | |
... ... ... | |
.T. .T. ... | |
.H. -> ... -> .T. | |
... .H. .H. | |
... ... ... | |
Otherwise, if the head and tail aren't touching and aren't in the same row or | |
column, the tail always moves one step diagonally to keep up: | |
..... ..... ..... | |
..... ..H.. ..H.. | |
..H.. -> ..... -> ..T.. | |
.T... .T... ..... | |
..... ..... ..... | |
..... ..... ..... | |
..... ..... ..... | |
..H.. -> ...H. -> ..TH. | |
.T... .T... ..... | |
..... ..... ..... | |
You just need to work out where the tail goes as the head follows a series of | |
motions. Assume the head and the tail both start at the same position, | |
overlapping. | |
After simulating the rope, you can count up all of the positions the tail | |
visited at least once. | |
Simulate your complete hypothetical series of motions. How many positions does | |
the tail of the rope visit at least once? | |
The puzzle answer was 6098. | |
--- Part Two --- | |
A rope snaps! Suddenly, the river is getting a lot closer than you remember. | |
The bridge is still there, but some of the ropes that broke are now whipping | |
toward you as you fall through the air! | |
The ropes are moving too quickly to grab; you only have a few seconds to | |
choose how to arch your body to avoid being hit. Fortunately, your simulation | |
can be extended to support longer ropes. | |
Rather than two knots, you now must simulate a rope consisting of ten knots. | |
One knot is still the head of the rope and moves according to the series of | |
motions. Each knot further down the rope follows the knot in front of it using | |
the same rules as before. | |
Now, you need to keep track of the positions the new tail, visits. | |
Simulate your complete series of motions on a larger rope with ten knots. How | |
many positions does the tail of the rope visit at least once? | |
The puzzle answer was 2597. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
D 2 | |
L 2 | |
U 1 | |
L 1 | |
U 2 | |
R 1 | |
L 1 | |
D 2 | |
U 2 | |
R 2 | |
U 1 | |
L 2 | |
R 1 | |
D 1 | |
L 2 | |
R 1 | |
U 2 | |
L 1 | |
U 1 | |
D 1 | |
R 1 | |
U 2 | |
D 2 | |
L 1 | |
D 1 | |
U 1 | |
L 1 | |
U 1 | |
D 2 | |
U 1 | |
L 2 | |
D 1 | |
L 1 | |
D 2 | |
U 1 | |
D 2 | |
R 1 | |
L 2 | |
R 1 | |
U 1 | |
R 2 | |
U 2 | |
D 2 | |
R 1 | |
D 1 | |
R 1 | |
U 2 | |
D 1 | |
U 2 | |
D 2 | |
L 1 | |
D 2 | |
R 2 | |
U 1 | |
L 1 | |
R 1 | |
U 2 | |
D 2 | |
R 1 | |
D 2 | |
U 1 | |
L 2 | |
R 1 | |
L 2 | |
D 2 | |
U 2 | |
D 2 | |
L 2 | |
U 1 | |
L 1 | |
D 2 | |
L 1 | |
R 2 | |
U 2 | |
D 1 | |
R 1 | |
U 2 | |
D 2 | |
U 1 | |
R 2 | |
L 1 | |
R 1 | |
L 1 | |
U 2 | |
D 2 | |
L 2 | |
D 1 | |
L 2 | |
U 2 | |
R 2 | |
L 1 | |
D 1 | |
L 2 | |
U 1 | |
L 2 | |
D 2 | |
L 2 | |
D 2 | |
R 2 | |
L 2 | |
R 1 | |
D 1 | |
L 2 | |
U 2 | |
L 2 | |
R 1 | |
D 1 | |
R 1 | |
D 2 | |
R 1 | |
U 2 | |
R 3 | |
U 1 | |
D 2 | |
U 3 | |
R 2 | |
U 3 | |
D 3 | |
U 1 | |
L 3 | |
R 1 | |
U 1 | |
D 2 | |
U 1 | |
D 2 | |
R 1 | |
L 3 | |
R 1 | |
L 3 | |
D 1 | |
L 2 | |
D 3 | |
U 2 | |
R 3 | |
D 2 | |
L 2 | |
D 1 | |
U 2 | |
R 2 | |
L 3 | |
R 3 | |
L 1 | |
R 1 | |
U 3 | |
D 3 | |
L 2 | |
U 2 | |
L 2 | |
R 1 | |
U 2 | |
L 2 | |
D 3 | |
R 2 | |
U 2 | |
L 3 | |
D 1 | |
R 1 | |
U 2 | |
R 3 | |
D 2 | |
U 3 | |
D 1 | |
R 2 | |
L 2 | |
D 1 | |
U 3 | |
L 1 | |
D 2 | |
L 1 | |
R 2 | |
L 1 | |
R 1 | |
D 3 | |
L 3 | |
R 2 | |
L 2 | |
R 3 | |
D 3 | |
U 1 | |
L 3 | |
D 1 | |
R 2 | |
L 2 | |
R 1 | |
D 3 | |
R 1 | |
L 2 | |
R 3 | |
U 2 | |
R 3 | |
L 3 | |
D 3 | |
L 3 | |
D 1 | |
U 1 | |
R 1 | |
U 3 | |
D 1 | |
U 2 | |
D 3 | |
R 3 | |
U 1 | |
L 3 | |
D 3 | |
U 1 | |
R 2 | |
D 1 | |
R 3 | |
D 2 | |
R 1 | |
L 2 | |
D 3 | |
L 2 | |
R 2 | |
D 3 | |
U 3 | |
L 1 | |
U 3 | |
L 2 | |
R 2 | |
L 1 | |
U 3 | |
D 1 | |
R 3 | |
U 4 | |
D 1 | |
L 2 | |
R 2 | |
U 2 | |
R 2 | |
D 2 | |
U 1 | |
R 2 | |
D 1 | |
R 4 | |
L 4 | |
D 1 | |
U 2 | |
L 2 | |
D 1 | |
R 2 | |
L 3 | |
U 4 | |
L 1 | |
R 2 | |
D 2 | |
L 1 | |
R 1 | |
D 2 | |
U 1 | |
L 2 | |
R 1 | |
D 2 | |
L 3 | |
R 4 | |
D 3 | |
U 1 | |
R 4 | |
L 1 | |
D 3 | |
R 1 | |
D 1 | |
L 3 | |
R 1 | |
U 4 | |
L 1 | |
R 3 | |
L 3 | |
R 1 | |
U 3 | |
R 3 | |
U 3 | |
L 2 | |
R 4 | |
D 3 | |
L 1 | |
U 1 | |
D 3 | |
U 3 | |
D 3 | |
U 1 | |
R 2 | |
U 2 | |
D 2 | |
U 1 | |
D 3 | |
L 2 | |
D 1 | |
U 3 | |
D 2 | |
U 3 | |
L 2 | |
U 2 | |
R 3 | |
U 4 | |
D 2 | |
R 3 | |
L 2 | |
D 2 | |
R 4 | |
U 2 | |
R 3 | |
L 2 | |
U 3 | |
R 1 | |
U 1 | |
L 2 | |
D 2 | |
U 3 | |
L 2 | |
R 4 | |
U 1 | |
R 3 | |
U 1 | |
R 4 | |
L 2 | |
R 4 | |
D 3 | |
U 3 | |
R 3 | |
L 3 | |
U 3 | |
D 4 | |
R 3 | |
U 3 | |
L 4 | |
D 4 | |
U 4 | |
L 4 | |
R 1 | |
U 3 | |
L 3 | |
U 1 | |
R 1 | |
D 5 | |
R 2 | |
L 3 | |
U 2 | |
D 2 | |
L 2 | |
R 3 | |
D 3 | |
L 2 | |
R 2 | |
L 5 | |
R 1 | |
L 5 | |
D 2 | |
R 3 | |
U 5 | |
L 4 | |
R 3 | |
L 3 | |
U 1 | |
R 1 | |
D 4 | |
U 5 | |
L 4 | |
U 2 | |
L 4 | |
D 1 | |
L 5 | |
U 5 | |
R 3 | |
L 1 | |
U 2 | |
L 2 | |
D 2 | |
L 3 | |
D 5 | |
U 3 | |
R 3 | |
U 2 | |
D 2 | |
U 1 | |
R 4 | |
U 4 | |
L 3 | |
R 2 | |
L 4 | |
U 4 | |
D 2 | |
L 2 | |
D 3 | |
U 5 | |
D 4 | |
L 5 | |
D 3 | |
R 3 | |
U 5 | |
R 2 | |
L 1 | |
U 1 | |
L 5 | |
D 1 | |
R 5 | |
L 3 | |
U 2 | |
L 1 | |
R 5 | |
U 2 | |
R 4 | |
U 2 | |
R 4 | |
L 2 | |
U 5 | |
R 5 | |
U 2 | |
R 3 | |
D 2 | |
L 3 | |
R 5 | |
D 5 | |
L 5 | |
D 2 | |
L 5 | |
R 4 | |
U 1 | |
R 3 | |
D 1 | |
U 5 | |
R 1 | |
U 3 | |
L 1 | |
R 4 | |
D 5 | |
L 4 | |
D 1 | |
U 3 | |
R 4 | |
L 3 | |
R 5 | |
L 5 | |
D 3 | |
L 1 | |
D 5 | |
U 3 | |
D 3 | |
U 1 | |
R 4 | |
L 5 | |
R 1 | |
U 5 | |
D 2 | |
L 2 | |
D 1 | |
U 6 | |
R 6 | |
D 6 | |
U 5 | |
R 6 | |
D 4 | |
R 3 | |
L 3 | |
U 2 | |
L 5 | |
U 6 | |
R 4 | |
U 3 | |
L 4 | |
R 3 | |
L 1 | |
D 3 | |
U 4 | |
D 4 | |
R 4 | |
U 6 | |
D 2 | |
R 1 | |
U 3 | |
D 1 | |
L 1 | |
D 4 | |
L 5 | |
D 4 | |
L 4 | |
D 5 | |
L 5 | |
U 1 | |
R 1 | |
U 6 | |
R 2 | |
U 2 | |
R 3 | |
U 2 | |
L 4 | |
U 5 | |
D 1 | |
L 6 | |
U 2 | |
L 2 | |
U 3 | |
L 1 | |
R 5 | |
U 1 | |
R 2 | |
L 1 | |
R 1 | |
D 5 | |
L 5 | |
D 5 | |
L 3 | |
R 4 | |
L 5 | |
U 3 | |
D 1 | |
U 3 | |
L 5 | |
R 2 | |
D 4 | |
R 6 | |
L 4 | |
D 5 | |
U 5 | |
L 6 | |
U 3 | |
R 1 | |
L 5 | |
D 2 | |
R 4 | |
U 4 | |
D 2 | |
L 5 | |
U 4 | |
D 1 | |
U 3 | |
D 3 | |
R 3 | |
U 1 | |
D 3 | |
U 4 | |
D 3 | |
R 6 | |
D 4 | |
L 6 | |
D 5 | |
U 1 | |
R 2 | |
D 5 | |
R 3 | |
L 2 | |
D 2 | |
U 2 | |
D 6 | |
L 6 | |
U 2 | |
L 5 | |
R 2 | |
U 5 | |
L 6 | |
R 4 | |
D 3 | |
R 3 | |
U 3 | |
L 3 | |
U 5 | |
D 2 | |
L 3 | |
U 7 | |
L 6 | |
U 2 | |
R 6 | |
D 5 | |
U 5 | |
D 5 | |
R 1 | |
L 1 | |
R 6 | |
L 6 | |
R 3 | |
U 1 | |
D 1 | |
U 2 | |
R 7 | |
U 4 | |
R 6 | |
D 4 | |
L 6 | |
U 7 | |
R 1 | |
L 1 | |
D 2 | |
L 6 | |
D 3 | |
L 4 | |
D 3 | |
U 6 | |
D 3 | |
U 3 | |
R 1 | |
U 6 | |
D 5 | |
L 5 | |
D 5 | |
U 2 | |
D 7 | |
L 3 | |
R 4 | |
D 2 | |
R 1 | |
D 4 | |
U 1 | |
D 6 | |
U 1 | |
R 2 | |
U 6 | |
R 4 | |
L 2 | |
U 1 | |
R 4 | |
D 2 | |
L 1 | |
U 3 | |
L 3 | |
D 5 | |
L 6 | |
D 3 | |
R 3 | |
D 1 | |
L 1 | |
D 6 | |
L 3 | |
U 4 | |
D 7 | |
U 2 | |
L 3 | |
U 1 | |
L 6 | |
U 4 | |
D 6 | |
L 3 | |
R 7 | |
U 2 | |
R 5 | |
D 1 | |
L 6 | |
D 6 | |
U 3 | |
D 2 | |
L 6 | |
U 3 | |
L 3 | |
R 3 | |
U 3 | |
L 4 | |
D 3 | |
U 1 | |
L 6 | |
U 2 | |
D 2 | |
U 5 | |
L 4 | |
D 6 | |
L 3 | |
R 7 | |
D 2 | |
U 1 | |
R 1 | |
D 3 | |
U 2 | |
L 7 | |
D 4 | |
U 6 | |
D 6 | |
U 2 | |
D 5 | |
L 4 | |
D 4 | |
L 7 | |
R 1 | |
D 4 | |
U 8 | |
L 1 | |
D 1 | |
U 4 | |
R 3 | |
L 4 | |
R 8 | |
L 1 | |
U 2 | |
L 6 | |
U 7 | |
D 5 | |
R 4 | |
L 5 | |
U 1 | |
D 6 | |
L 6 | |
D 7 | |
R 5 | |
U 4 | |
D 7 | |
U 7 | |
R 5 | |
L 2 | |
D 5 | |
L 5 | |
U 3 | |
R 7 | |
U 6 | |
R 6 | |
D 5 | |
R 4 | |
L 7 | |
U 6 | |
R 6 | |
U 1 | |
R 4 | |
U 7 | |
R 8 | |
D 1 | |
L 3 | |
R 6 | |
L 2 | |
U 7 | |
R 7 | |
U 3 | |
R 7 | |
D 1 | |
U 8 | |
R 2 | |
L 4 | |
U 1 | |
D 6 | |
R 5 | |
U 8 | |
L 8 | |
U 4 | |
D 8 | |
L 8 | |
U 3 | |
R 7 | |
L 3 | |
U 2 | |
R 6 | |
L 5 | |
R 2 | |
L 1 | |
R 8 | |
D 7 | |
R 5 | |
D 3 | |
U 3 | |
R 2 | |
U 2 | |
L 4 | |
D 2 | |
U 1 | |
R 2 | |
D 3 | |
U 7 | |
L 4 | |
D 5 | |
L 6 | |
D 3 | |
R 1 | |
D 7 | |
U 8 | |
R 3 | |
D 5 | |
R 5 | |
D 7 | |
U 3 | |
R 1 | |
L 2 | |
U 8 | |
R 6 | |
D 1 | |
U 7 | |
D 3 | |
U 2 | |
R 3 | |
D 7 | |
R 2 | |
D 4 | |
R 5 | |
U 1 | |
D 8 | |
U 1 | |
D 1 | |
R 4 | |
D 1 | |
L 1 | |
U 3 | |
L 3 | |
U 7 | |
R 1 | |
L 7 | |
U 1 | |
R 5 | |
U 9 | |
R 1 | |
U 5 | |
R 6 | |
U 7 | |
R 1 | |
D 9 | |
L 9 | |
R 6 | |
U 3 | |
L 6 | |
R 8 | |
L 1 | |
U 5 | |
L 9 | |
R 2 | |
U 4 | |
L 9 | |
D 8 | |
R 8 | |
U 6 | |
D 8 | |
U 8 | |
L 5 | |
U 7 | |
R 6 | |
U 5 | |
R 2 | |
L 7 | |
U 9 | |
D 2 | |
U 9 | |
R 7 | |
L 9 | |
R 5 | |
L 1 | |
U 4 | |
D 3 | |
L 3 | |
D 9 | |
L 5 | |
R 9 | |
U 8 | |
D 9 | |
U 6 | |
R 4 | |
D 3 | |
U 9 | |
L 9 | |
U 8 | |
L 6 | |
R 9 | |
L 8 | |
R 1 | |
L 4 | |
D 8 | |
L 1 | |
R 5 | |
L 1 | |
R 7 | |
D 2 | |
L 2 | |
D 4 | |
R 7 | |
U 9 | |
R 3 | |
L 2 | |
R 1 | |
D 9 | |
R 1 | |
U 6 | |
D 7 | |
U 4 | |
D 8 | |
L 6 | |
D 8 | |
L 4 | |
U 5 | |
R 6 | |
U 9 | |
R 7 | |
U 1 | |
R 5 | |
D 1 | |
R 9 | |
D 1 | |
R 7 | |
D 2 | |
U 2 | |
R 5 | |
U 9 | |
R 4 | |
U 4 | |
R 2 | |
D 9 | |
R 7 | |
D 3 | |
U 1 | |
L 2 | |
R 3 | |
U 7 | |
L 5 | |
R 2 | |
U 10 | |
D 4 | |
U 7 | |
L 6 | |
R 5 | |
L 10 | |
U 2 | |
D 7 | |
L 9 | |
D 8 | |
R 5 | |
L 9 | |
D 2 | |
R 10 | |
U 8 | |
D 10 | |
L 2 | |
D 6 | |
R 6 | |
L 3 | |
R 10 | |
D 7 | |
U 2 | |
D 7 | |
R 1 | |
U 9 | |
D 1 | |
R 10 | |
L 6 | |
U 1 | |
L 9 | |
U 7 | |
R 1 | |
U 1 | |
D 7 | |
U 6 | |
L 2 | |
R 8 | |
L 5 | |
D 3 | |
R 7 | |
L 2 | |
D 10 | |
R 1 | |
D 9 | |
L 10 | |
R 3 | |
L 8 | |
D 1 | |
R 5 | |
U 9 | |
L 10 | |
R 9 | |
L 5 | |
D 7 | |
R 7 | |
L 6 | |
D 3 | |
R 10 | |
L 3 | |
D 6 | |
L 9 | |
D 10 | |
R 2 | |
L 10 | |
U 9 | |
R 3 | |
U 9 | |
R 9 | |
L 3 | |
U 6 | |
R 6 | |
D 3 | |
R 10 | |
L 8 | |
D 3 | |
L 8 | |
U 8 | |
D 4 | |
R 1 | |
L 2 | |
D 1 | |
U 9 | |
D 8 | |
R 8 | |
U 10 | |
D 2 | |
U 7 | |
R 3 | |
L 2 | |
D 2 | |
R 1 | |
U 5 | |
L 7 | |
R 6 | |
D 10 | |
U 8 | |
D 8 | |
L 9 | |
D 1 | |
L 6 | |
U 6 | |
L 10 | |
U 10 | |
D 8 | |
U 2 | |
R 2 | |
L 6 | |
R 6 | |
U 11 | |
R 3 | |
D 1 | |
U 8 | |
R 4 | |
L 6 | |
U 3 | |
L 5 | |
D 9 | |
U 8 | |
L 11 | |
D 4 | |
R 5 | |
D 8 | |
U 9 | |
R 7 | |
L 10 | |
U 6 | |
L 9 | |
U 8 | |
D 5 | |
R 7 | |
D 3 | |
U 7 | |
R 7 | |
D 2 | |
U 3 | |
D 1 | |
U 3 | |
D 6 | |
U 11 | |
R 8 | |
L 3 | |
D 5 | |
L 6 | |
D 2 | |
R 4 | |
U 6 | |
R 3 | |
L 11 | |
D 4 | |
R 3 | |
L 9 | |
R 3 | |
L 1 | |
D 11 | |
R 6 | |
D 6 | |
U 4 | |
L 3 | |
R 10 | |
L 6 | |
D 8 | |
U 2 | |
D 7 | |
L 10 | |
R 8 | |
D 5 | |
L 10 | |
D 11 | |
L 6 | |
D 10 | |
L 9 | |
D 2 | |
R 10 | |
D 9 | |
U 9 | |
D 2 | |
R 10 | |
D 9 | |
U 10 | |
L 3 | |
U 1 | |
D 6 | |
L 5 | |
U 5 | |
R 10 | |
L 3 | |
D 6 | |
R 9 | |
L 1 | |
D 5 | |
U 10 | |
R 5 | |
L 9 | |
U 3 | |
R 5 | |
U 3 | |
D 6 | |
R 11 | |
D 9 | |
L 6 | |
R 5 | |
D 3 | |
R 7 | |
D 6 | |
R 1 | |
U 3 | |
L 4 | |
U 8 | |
R 8 | |
L 3 | |
U 4 | |
R 3 | |
U 5 | |
L 10 | |
D 6 | |
U 2 | |
R 1 | |
D 11 | |
R 7 | |
L 7 | |
D 1 | |
L 11 | |
D 2 | |
R 10 | |
D 5 | |
L 6 | |
D 9 | |
L 9 | |
D 2 | |
U 6 | |
L 5 | |
R 3 | |
U 6 | |
D 3 | |
U 3 | |
D 4 | |
R 10 | |
L 8 | |
D 5 | |
R 8 | |
D 10 | |
L 7 | |
D 4 | |
L 10 | |
R 10 | |
U 11 | |
L 4 | |
U 1 | |
D 12 | |
U 8 | |
L 5 | |
R 5 | |
L 9 | |
U 1 | |
L 4 | |
R 4 | |
L 6 | |
D 11 | |
L 9 | |
U 10 | |
D 4 | |
L 6 | |
U 7 | |
R 10 | |
L 3 | |
U 4 | |
D 12 | |
U 9 | |
D 4 | |
L 5 | |
D 11 | |
R 6 | |
D 1 | |
L 4 | |
U 5 | |
D 1 | |
U 8 | |
D 8 | |
R 6 | |
L 4 | |
D 4 | |
U 1 | |
L 1 | |
R 11 | |
L 2 | |
R 4 | |
L 9 | |
U 3 | |
D 6 | |
U 2 | |
R 6 | |
U 4 | |
R 4 | |
D 12 | |
R 4 | |
U 11 | |
L 7 | |
R 2 | |
U 12 | |
R 2 | |
D 12 | |
R 9 | |
L 2 | |
R 9 | |
L 5 | |
U 1 | |
R 5 | |
U 12 | |
L 9 | |
U 7 | |
R 12 | |
D 12 | |
L 12 | |
D 7 | |
L 2 | |
D 9 | |
U 10 | |
R 10 | |
U 3 | |
R 9 | |
D 10 | |
U 4 | |
L 3 | |
U 1 | |
D 2 | |
L 10 | |
U 2 | |
L 10 | |
U 6 | |
R 1 | |
D 5 | |
U 2 | |
L 8 | |
U 12 | |
R 10 | |
U 11 | |
D 10 | |
U 13 | |
D 6 | |
R 11 | |
L 9 | |
U 4 | |
D 5 | |
L 9 | |
U 4 | |
L 5 | |
D 10 | |
U 4 | |
L 9 | |
R 6 | |
D 8 | |
U 10 | |
R 6 | |
L 5 | |
R 13 | |
L 6 | |
R 3 | |
U 11 | |
L 1 | |
U 6 | |
D 6 | |
U 8 | |
D 11 | |
R 3 | |
L 7 | |
R 8 | |
L 11 | |
R 3 | |
U 3 | |
L 2 | |
R 2 | |
D 12 | |
R 3 | |
U 6 | |
R 1 | |
U 11 | |
R 9 | |
U 6 | |
R 12 | |
L 7 | |
D 12 | |
L 6 | |
R 8 | |
D 12 | |
L 1 | |
R 12 | |
D 10 | |
R 2 | |
U 7 | |
L 5 | |
D 6 | |
U 6 | |
D 2 | |
R 13 | |
U 1 | |
D 3 | |
U 5 | |
R 12 | |
L 1 | |
D 12 | |
R 2 | |
D 8 | |
L 12 | |
R 5 | |
L 13 | |
U 4 | |
R 4 | |
L 4 | |
R 12 | |
U 7 | |
D 3 | |
L 12 | |
R 2 | |
D 5 | |
L 13 | |
D 1 | |
L 8 | |
U 13 | |
L 10 | |
U 5 | |
R 10 | |
U 3 | |
L 8 | |
R 4 | |
L 10 | |
D 3 | |
U 4 | |
D 6 | |
L 6 | |
R 11 | |
U 3 | |
D 5 | |
L 4 | |
R 1 | |
U 3 | |
R 2 | |
L 12 | |
R 5 | |
D 7 | |
L 2 | |
U 9 | |
R 5 | |
D 2 | |
U 10 | |
D 7 | |
L 14 | |
U 1 | |
R 1 | |
D 2 | |
U 7 | |
L 13 | |
R 13 | |
D 8 | |
L 3 | |
U 11 | |
R 8 | |
U 8 | |
D 9 | |
U 10 | |
R 2 | |
D 3 | |
U 14 | |
R 12 | |
L 13 | |
R 2 | |
D 13 | |
R 5 | |
D 10 | |
R 12 | |
D 5 | |
R 13 | |
D 4 | |
L 3 | |
U 1 | |
L 5 | |
R 4 | |
L 12 | |
U 5 | |
D 11 | |
U 6 | |
L 1 | |
D 9 | |
R 9 | |
U 1 | |
R 9 | |
D 14 | |
R 6 | |
L 4 | |
R 8 | |
L 9 | |
R 7 | |
L 1 | |
D 8 | |
R 1 | |
L 12 | |
D 12 | |
L 9 | |
U 11 | |
D 1 | |
R 9 | |
U 7 | |
R 14 | |
D 5 | |
R 7 | |
U 5 | |
D 4 | |
R 6 | |
D 1 | |
L 12 | |
U 8 | |
D 4 | |
L 2 | |
U 4 | |
L 6 | |
U 2 | |
D 4 | |
L 11 | |
U 5 | |
R 1 | |
U 5 | |
D 3 | |
U 12 | |
L 1 | |
D 3 | |
L 14 | |
D 6 | |
R 9 | |
U 7 | |
L 14 | |
D 10 | |
L 11 | |
R 1 | |
D 11 | |
R 7 | |
D 8 | |
U 14 | |
L 9 | |
D 11 | |
R 8 | |
D 6 | |
R 11 | |
D 12 | |
R 12 | |
D 7 | |
L 14 | |
R 14 | |
D 13 | |
R 5 | |
L 11 | |
R 3 | |
L 15 | |
R 12 | |
D 9 | |
L 8 | |
R 15 | |
U 3 | |
L 3 | |
D 5 | |
R 13 | |
U 4 | |
L 4 | |
U 1 | |
L 3 | |
R 6 | |
L 9 | |
R 13 | |
D 9 | |
R 14 | |
U 3 | |
L 7 | |
R 2 | |
L 15 | |
R 6 | |
L 12 | |
U 1 | |
L 9 | |
D 7 | |
R 8 | |
L 12 | |
R 2 | |
U 3 | |
R 1 | |
L 10 | |
U 2 | |
L 6 | |
R 3 | |
D 14 | |
L 11 | |
D 10 | |
U 4 | |
D 1 | |
R 15 | |
D 8 | |
R 3 | |
U 3 | |
R 2 | |
U 3 | |
L 2 | |
R 11 | |
D 15 | |
R 4 | |
U 14 | |
D 11 | |
L 12 | |
R 6 | |
D 14 | |
L 5 | |
D 3 | |
R 5 | |
D 9 | |
R 2 | |
D 11 | |
R 5 | |
D 10 | |
R 13 | |
L 11 | |
U 13 | |
R 6 | |
U 13 | |
R 13 | |
U 1 | |
L 8 | |
R 12 | |
D 15 | |
R 10 | |
U 1 | |
R 9 | |
L 8 | |
R 5 | |
D 6 | |
U 3 | |
L 5 | |
R 6 | |
D 8 | |
R 14 | |
D 3 | |
U 8 | |
L 7 | |
U 2 | |
D 2 | |
U 13 | |
D 6 | |
U 5 | |
L 8 | |
U 9 | |
D 10 | |
U 15 | |
D 14 | |
L 14 | |
U 1 | |
L 13 | |
R 10 | |
U 15 | |
R 13 | |
D 8 | |
U 8 | |
R 11 | |
L 12 | |
U 5 | |
D 6 | |
R 8 | |
D 13 | |
L 9 | |
R 8 | |
D 9 | |
R 2 | |
D 1 | |
L 9 | |
U 5 | |
R 12 | |
U 1 | |
D 10 | |
U 1 | |
R 15 | |
D 4 | |
U 6 | |
D 7 | |
U 11 | |
D 5 | |
L 6 | |
D 10 | |
U 14 | |
R 12 | |
L 15 | |
U 4 | |
D 12 | |
U 6 | |
D 1 | |
R 11 | |
D 16 | |
U 10 | |
D 2 | |
R 12 | |
L 16 | |
D 10 | |
U 8 | |
D 7 | |
R 16 | |
D 15 | |
U 2 | |
D 13 | |
R 10 | |
D 12 | |
R 8 | |
L 16 | |
D 13 | |
U 12 | |
L 7 | |
R 16 | |
L 8 | |
R 16 | |
U 11 | |
R 11 | |
L 16 | |
U 6 | |
L 15 | |
D 3 | |
R 13 | |
D 8 | |
L 8 | |
D 12 | |
L 4 | |
U 11 | |
R 7 | |
L 9 | |
D 13 | |
U 1 | |
R 12 | |
L 9 | |
D 14 | |
L 9 | |
D 9 | |
R 3 | |
L 5 | |
D 8 | |
L 11 | |
U 4 | |
R 10 | |
D 1 | |
L 2 | |
R 11 | |
U 12 | |
L 15 | |
D 5 | |
U 16 | |
R 13 | |
D 14 | |
R 16 | |
U 13 | |
D 8 | |
L 6 | |
D 5 | |
R 14 | |
D 12 | |
U 1 | |
R 2 | |
D 9 | |
L 13 | |
R 6 | |
D 3 | |
R 12 | |
L 12 | |
U 9 | |
D 12 | |
R 15 | |
L 8 | |
R 12 | |
D 10 | |
U 2 | |
D 11 | |
L 4 | |
R 14 | |
L 7 | |
D 5 | |
R 11 | |
U 9 | |
D 2 | |
U 5 | |
D 8 | |
R 11 | |
L 15 | |
D 12 | |
U 14 | |
R 9 | |
L 11 | |
R 2 | |
D 7 | |
R 3 | |
U 6 | |
R 9 | |
U 6 | |
L 10 | |
R 16 | |
U 12 | |
R 14 | |
D 2 | |
R 7 | |
D 10 | |
L 6 | |
U 14 | |
R 15 | |
U 10 | |
L 2 | |
D 7 | |
U 6 | |
R 16 | |
D 15 | |
L 10 | |
D 6 | |
R 8 | |
D 4 | |
U 17 | |
D 10 | |
R 11 | |
U 2 | |
D 8 | |
R 14 | |
U 10 | |
L 7 | |
R 17 | |
L 4 | |
R 7 | |
U 16 | |
R 5 | |
U 1 | |
D 11 | |
L 11 | |
R 9 | |
U 9 | |
R 5 | |
U 3 | |
D 8 | |
L 3 | |
R 3 | |
U 3 | |
D 8 | |
R 9 | |
U 12 | |
L 14 | |
R 15 | |
U 5 | |
D 1 | |
U 14 | |
D 11 | |
L 4 | |
U 17 | |
R 16 | |
L 12 | |
D 16 | |
U 10 | |
R 13 | |
L 7 | |
U 5 | |
D 4 | |
R 3 | |
U 11 | |
L 5 | |
R 1 | |
L 7 | |
D 10 | |
L 17 | |
R 2 | |
L 1 | |
R 7 | |
U 11 | |
R 14 | |
D 13 | |
U 4 | |
D 7 | |
R 4 | |
U 1 | |
R 9 | |
D 16 | |
R 1 | |
U 5 | |
D 4 | |
R 7 | |
D 8 | |
L 14 | |
D 16 | |
R 11 | |
L 12 | |
D 14 | |
U 8 | |
D 9 | |
U 5 | |
R 11 | |
L 8 | |
D 15 | |
U 2 | |
L 6 | |
D 11 | |
U 1 | |
R 12 | |
L 6 | |
D 6 | |
U 14 | |
D 15 | |
U 13 | |
D 2 | |
U 16 | |
R 10 | |
U 10 | |
D 2 | |
L 1 | |
U 13 | |
R 18 | |
U 2 | |
R 7 | |
L 1 | |
D 13 | |
R 10 | |
L 8 | |
U 8 | |
R 5 | |
U 18 | |
R 9 | |
U 12 | |
R 5 | |
U 5 | |
D 8 | |
L 5 | |
U 4 | |
L 15 | |
R 12 | |
D 14 | |
R 13 | |
D 5 | |
L 14 | |
D 16 | |
U 12 | |
D 13 | |
U 2 | |
D 9 | |
U 4 | |
D 13 | |
U 8 | |
D 10 | |
R 10 | |
L 2 | |
D 18 | |
L 9 | |
R 14 | |
U 6 | |
L 15 | |
U 5 | |
D 14 | |
R 4 | |
U 3 | |
R 8 | |
U 17 | |
L 16 | |
U 4 | |
D 12 | |
R 1 | |
U 1 | |
L 1 | |
U 16 | |
D 17 | |
U 3 | |
L 12 | |
R 9 | |
U 10 | |
R 12 | |
D 15 | |
U 16 | |
D 2 | |
L 17 | |
D 9 | |
L 7 | |
U 10 | |
L 6 | |
R 8 | |
D 7 | |
R 4 | |
L 16 | |
D 1 | |
L 16 | |
R 6 | |
D 3 | |
R 11 | |
U 3 | |
L 14 | |
D 7 | |
L 1 | |
D 13 | |
U 16 | |
R 15 | |
L 4 | |
U 3 | |
L 4 | |
U 7 | |
R 5 | |
D 4 | |
R 3 | |
D 9 | |
U 18 | |
L 8 | |
R 2 | |
D 2 | |
L 14 | |
U 9 | |
R 1 | |
L 19 | |
R 1 | |
L 16 | |
U 9 | |
R 11 | |
U 15 | |
L 14 | |
U 5 | |
D 19 | |
R 2 | |
D 8 | |
L 14 | |
D 7 | |
L 17 | |
U 19 | |
R 19 | |
U 4 | |
R 6 | |
L 5 | |
D 9 | |
L 19 | |
D 13 | |
R 19 | |
L 5 | |
U 13 | |
L 13 | |
U 6 | |
D 7 | |
R 1 | |
U 7 | |
D 15 | |
U 9 | |
R 15 | |
U 6 | |
L 2 | |
D 19 | |
U 7 | |
R 6 | |
U 12 | |
D 4 | |
U 13 | |
L 17 | |
U 14 | |
L 13 | |
U 2 | |
R 10 | |
L 6 | |
U 6 | |
D 9 | |
R 9 | |
L 8 | |
R 10 | |
D 4 | |
L 8 | |
R 10 | |
D 5 | |
L 11 | |
R 16 | |
U 10 | |
L 2 | |
R 13 | |
D 15 | |
U 2 | |
R 13 | |
L 17 | |
U 6 | |
L 1 | |
D 9 | |
U 2 | |
L 2 | |
R 14 | |
U 15 | |
D 15 | |
U 18 | |
R 16 | |
U 5 | |
L 18 | |
R 7 | |
U 14 | |
D 9 | |
U 2 | |
D 2 | |
U 17 | |
D 6 | |
U 1 | |
L 3 | |
R 3 | |
L 10 | |
R 2 | |
L 2 | |
D 8 | |
U 2 | |
L 16 | |
U 2 | |
D 11 | |
U 3 | |
L 18 | |
D 12 | |
R 19 | |
D 11 | |
U 1 | |
D 17 | |
U 6 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment