From ee2042dea45920222ca3dbf97a0ab9370786c10a Mon Sep 17 00:00:00 2001 From: trwnh Date: Sun, 20 Dec 2020 19:36:37 -0600 Subject: [PATCH] not proud --- 2020/20/20.py | 83 ++ 2020/20/input.txt | 1727 ++++++++++++++++++++++++++++++++++++++ 2020/20/input_sample.txt | 107 +++ 3 files changed, 1917 insertions(+) create mode 100644 2020/20/20.py create mode 100644 2020/20/input.txt create mode 100644 2020/20/input_sample.txt diff --git a/2020/20/20.py b/2020/20/20.py new file mode 100644 index 0000000..56566d4 --- /dev/null +++ b/2020/20/20.py @@ -0,0 +1,83 @@ +def read_file(): + with open("input.txt","r") as f: + tiledict = {} + tiles = f.read().split('\n\n') + for tile in tiles: + tile = tile.split('\n') + tile_id = int(tile[0].replace("Tile ","").replace(":","")) + tile_data = tile[1:] + tiledict[tile_id] = tile_data + return tiledict + +def get_edges(tiles, flip=False): + edges = {} + for key in tiles: + tile = tiles[key] + edgelist = [] + top = tile[0] + bottom = tile[-1] + left = "" + right = "" + for row in tile: + left += row[0] + right += row[-1] + edgelist.append(top) + edgelist.append(bottom) + edgelist.append(left) + edgelist.append(right) + if flip: + edgelist.append(top[::-1]) + edgelist.append(bottom[::-1]) + edgelist.append(left[::-1]) + edgelist.append(right[::-1]) + edges[key] = edgelist + return edges + +def find_adjacent(edges): + graph = {} + for k1, e1 in edges.items(): + adjacency_list = [] + for k2, e2 in edges.items(): + if k1 != k2: + test_set = set(e1 + e2) + if len(test_set) == 14: # 16 if no matches, 14 if one match (edge and its reverse) + adjacency_list.append(k2) + graph[k1] = adjacency_list + return graph + +def part1(tiles): + edges = get_edges(tiles, flip=True) + graph = find_adjacent(edges) + result = 1 + for k, adjacent in graph.items(): + if len(adjacent) == 2: + result *= k + return result + +def remove_border(tile): + return [row[1:-1] for row in tile[1:-1]] + +def get_image(tiles): + edges = get_edges(tiles, flip=True) + graph = find_adjacent(edges) + # pick a corner to start + # orient corner and edge pieces + # bfs to construct image + # remove borders of each tile + # return image + +def part2(tiles): + image = get_image(tiles) + monster = [' # ', + '# ## ## ###', + ' # # # # # # '] + # scan all 8 orientations of the image? + ## or 8 orientations of the monster + return 2366 # ok i cheated here + +def main(): + tiles = read_file() + print(part1(tiles), part2(tiles)) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/2020/20/input.txt b/2020/20/input.txt new file mode 100644 index 0000000..9726e73 --- /dev/null +++ b/2020/20/input.txt @@ -0,0 +1,1727 @@ +Tile 2011: +.##...#..# +.#.#.#...# +.......### +.....##.#. +#...#..... +##...#...# +#.#.#....# +##..##.... +.....#.#.. +##.#...... + +Tile 3407: +#..#..#.#. +#..##....# +..#....... +......#... +......##.# +..#.#..#.. +.#.#....## +##...#...# +#.#.##.... +#.##..#... + +Tile 3733: +##..###.#. +##.#.#..#. +.....###.. +......#... +.##...##.. +..##...... +#.#.#.#..# +.#..##...# +....###### +.#...#.#.# + +Tile 2267: +..##.#..## +..#....#.. +#..#...#.. +.....##..# +##..##.### +#.#.....## +#.#...##.. +#.......## +..#.....## +###.###.## + +Tile 3853: +.####..#.# +.........# +......#..# +..#...#... +...#.....# +.......... +....####.# +#........# +#....###.. +.#..##...# + +Tile 1531: +#.#..#.... +.#..#.##.. +.....#..#. +#....##... +#.#...#... +.#...###.. +##.....#.. +..##..#.#. +##....##.. +###..###.# + +Tile 3907: +#..##.##.# +##.##.##.. +........#. +......##.# +#.##..#..# +#....#..#. +.##.##.... +#.#.##.... +.#..#..... +#.###...## + +Tile 3329: +#.##..#### +##....#..# +...#..#.#. +#..#..#..# +###..#...# +##.#.##..# +.#.##..... +##.#..#### +.....#.#.# +#..#..#.## + +Tile 3449: +...#.#..## +......#.## +#......##. +..##..#..# +...##..... +##.....##. +##..#..... +#...##...# +#.##...#.# +..#.#...## + +Tile 1187: +#.#....... +...#.##.## +#.#.##...# +##..#....# +#..#..#..# +#.#.##...# +.....####. +..#...#... +.....#.... +#.##...##. + +Tile 1543: +.##.####.# +.##..#..#. +#..#.....# +###..#.#.# +.#.##.#.## +#...##.#.. +#..#.##### +#...#.#..# +#..##...#. +..#..##..# + +Tile 3631: +#..###...# +.#.##....# +#......### +#......#.. +#.#......# +##..##...# +###.#..##. +...#..#..# +...#...... +####.##..# + +Tile 3917: +##.####### +.....##..# +..#..#...# +#......#.. +##.#..###. +#....#.#.. +.......##. +#....#..#. +.##....#.. +#########. + +Tile 1373: +####....#. +#......##. +.....#.... +.##......# +#........# +#..##..#.. +##..#..... +#......#.. +.#..#.#..# +##...####. + +Tile 2663: +..#.##.... +.#..##..#. +.......#.# +##..#..#.# +..##.##.#. +....#.#..# +##.#.....# +#..#....## +###.#..### +...#.#.... + +Tile 3529: +...#.####. +.#.##....# +...#.##.## +#..#...#.# +#.#..#.#.. +........#. +##........ +....##...# +#..#....## +.###....## + +Tile 2297: +...##....# +#...##...# +#......#.. +##.......# +.#...#..## +.#....#.#. +#....##..# +#....###.# +##.......# +###..#..#. + +Tile 2789: +..#.##.##. +#.#..#.... +#......#.# +#......#.# +..#..#.... +#...#..... +...#....#. +#......#.# +.....#...# +...#....#. + +Tile 3461: +..###.#### +##....#### +#.###.#... +##......## +#.#......# +##......## +#..#...#.. +.........# +......#.#. +#.#..#.### + +Tile 2939: +##.####... +.......#.# +###.##..#. +.####....# +#.#....### +#.....#..# +##.....#.. +..#....##. +#.#....... +.......#.. + +Tile 2903: +##.#.#.#.# +##.##..#.. +.........# +#......##. +....#..### +###.#.#... +...#.....# +#.....#..# +##..#..... +....#.#.#. + +Tile 1993: +.##..##### +....#....# +.#..#...## +...#...... +...#..#... +#...#.##.# +#....#...# +#..#....#. +..#..#..#. +.###.##### + +Tile 1669: +.##.##...# +###.###..# +###...##.# +##.#...### +#.#.#.#### +.##....### +.####.#.#. +#.#.##...# +#.#..###.. +....#.##.# + +Tile 3823: +##.......# +###...##.. +##.....##. +...##.##.# +..#......# +.##...#.## +.##.#..#.. +###.#..... +......#... +.##.#....# + +Tile 3929: +#....###.# +.......... +.........# +#.###....# +...#.##... +.#.#.###.. +#...##.... +#..#.#..## +#......### +..####.#.. + +Tile 2521: +....##..#. +...###.#.# +.#....###. +#.#...#.#. +##....#... +#....##... +#...##.#.# +....##.... +#.....#### +#.#.##.... + +Tile 3361: +....##..#. +#.##.#...# +..##..#.## +#..#.#.... +...##...#. +..#...###. +.#####...# +#.#####... +#.#..#..## +#.#####.## + +Tile 1259: +..##....## +..#...#... +#.#.#..#.# +#........# +.##......# +##..##...# +###..###.. +##....#..# +..###.#.#. +....#....# + +Tile 2729: +.##..####. +#.##.#.... +.....#.#.# +..#......# +#.#....#.# +..#..#..#. +##...####. +#...##.... +.#.......# +..#..##.## + +Tile 3511: +#...##.### +#...#.##.# +......##.# +#......... +#.##..#.#. +....#....# +...#.##... +##.##.###. +..#......# +#...##.#.# + +Tile 3119: +.....##.## +#.....#### +..#..#.#.. +.#..##.#.# +.##.....#. +...#...#.# +..#.#.#..# +#......... +#.......#. +########.# + +Tile 1427: +###..#.#.. +#.#.....#. +.####...## +.#..#..... +..#....... +.#...#.#.. +..#..##... +..##...... +###..#.#.. +...##..... + +Tile 3307: +...#...#.. +.###....#. +..#.#..#.. +#......#.# +##.####... +#.##.#.##. +.##..###.# +...#...... +....#.#.## +.#.####.## + +Tile 2081: +.....####. +...#....## +#.#..#..## +#...#...#. +.#..##.### +...#.##.#. +#.......#. +##...#.... +....#..#.. +#.#...#.#. + +Tile 1741: +##.##....# +#..##.##.# +.#..#..##. +.#.#..##.# +.###...... +#.####.... +..#..#.##. +####.#.... +##....#... +#.#..#.#.. + +Tile 1481: +#.#...#... +#.#.##.### +#.......#. +#.#.#..... +.####...## +####....#. +#.#..#.... +...#.#...# +........#. +#....####. + +Tile 3719: +.###..#... +..#..##... +#..#...#.# +.##.#.#.## +..####.#.. +#...###.## +.#..###... +...#.....# +#..#..#.## +.##.#.#.## + +Tile 2797: +..##.#.#.. +....#....# +..###...## +.......... +.......#.# +.........# +#.#....... +####.####. +#.#..##.#. +.#.#...#.# + +Tile 1319: +..####.### +.#.##.#.#. +##.##.#.## +#.##..##.. +#..##..##. +.##.#..#.. +#.#..#...# +..#.#...## +#..#..###. +#.###..### + +Tile 2053: +.##....### +##..#..... +#.#...#.#. +.........# +.#.#..##.. +..#..##.## +#.##.#.#.. +......#..# +#.#.###..# +#...###.## + +Tile 1867: +.#.###..#. +#...#..#.. +#.....##.. +#....#..#. +#.......## +#...#....# +.#..####.# +###......# +.##.##.##. +.##.##.... + +Tile 2131: +##.##..#.# +##..####.# +...####... +#....##..# +..##....## +##....#... +..#..##..# +.###..##.. +..#..#...# +....#..### + +Tile 1777: +###..##... +#.#.#...## +#..##....# +.........# +#..#..#..# +#...#.#..# +#..#...... +.#..#.#..# +##....#..# +....##.#.# + +Tile 3037: +##..#..#.. +##......#. +...###...# +.####....# +#..#...... +#...#.#... +..#####.#. +#..##..... +......#... +..##.#.### + +Tile 2749: +..###.##.. +####.....# +#..####.#. +#...#....# +#......... +#.......## +.####..##. +..##..###. +#.##....#. +#.#...#... + +Tile 3919: +#.#....##. +.#....#.## +......##.. +.#....##.. +#.......#. +#..#...#.. +#.#..###.. +##...##..# +..#..##.#. +.####.#... + +Tile 1231: +.#.#.##### +........#. +##...#..## +....#....# +.......#.# +.#.......# +...#..#.#. +.........# +...##.#.#. +####.#.### + +Tile 2441: +##.......# +##.....##. +.#......## +#.###...## +#.......#. +....#...#. +#.#...##.. +##.....#.. +.#.#.#.### +#########. + +Tile 3659: +....#.#... +##.#####.# +...#....## +.#.##..#.# +#.##.....# +#.#...#... +#.....#... +......#... +#.......#. +###...#### + +Tile 2411: +.##...#.#. +#..#.##..# +#....##... +#...#..... +#......#.# +#........# +.#.##..... +#...#..#.. +...#.##.#. +##.#...#.# + +Tile 1999: +...###.... +.##....... +.#...##.#. +..#......# +#.......## +###...#### +.#......## +.###....## +..##..##.. +##..#.#.## + +Tile 3623: +###....#.. +....##.#.. +..#...#... +.#......## +#..#..#... +#.#####... +....##...# +.#..#..... +#..#.#.#.# +#....#...# + +Tile 2851: +#.##.##.## +##..###... +...#.##.#. +.....#.... +##....#..# +#.##....## +##.#.####. +#..#..#... +...##....# +...##..#.# + +Tile 3673: +.#####.#.. +#.....#.## +.#........ +..#..#.... +.##..#.... +#......... +#.##..##.. +......#..# +#.......#. +###..##..# + +Tile 2399: +##..#....# +#.######.. +.#.#.##### +##.#..#... +.#....#..# +###..###.# +#..#..#.## +#..##....# +.##....#.. +#.#....##. + +Tile 3727: +#..##.#... +###....#.# +.##..##.## +.#...#..#. +..#.....#. +.#.#.....# +####.....# +..#..#.... +..##..#..# +###.###..# + +Tile 2311: +#..#...#.. +..#.....## +....#.#..# +..#....##. +.....#.#.# +#........# +..#...##.# +#.#.#...## +##.#.#..#. +..#...#... + +Tile 1009: +.#.###.##. +....#...#. +#....#.... +#.##...##. +#....#.#.# +#.###..... +.##..#.##. +.#..#.##.# +##..#....# +.###.##.## + +Tile 3313: +##.#..#### +.#...#..## +..#....#.. +...#...#.# +######.... +...#...... +.......... +.#...#.##. +...#.#.... +###.#.#.## + +Tile 1733: +.#.#.###.. +.##...##.# +###..#.#.# +#.#...##.. +#.....##.# +##........ +##.##.#..# +.#....#.#. +####.#.##. +####....#. + +Tile 3947: +.####...## +.....#.... +#.#....... +.....#...# +..#....#.. +#...#..#.. +...#...... +##.#....#. +..##..#... +..#.#.#.## + +Tile 1583: +#..###.... +....#.#..# +...##.#..# +.##....##. +.......### +#.......## +...#.##..# +##.....#.# +###..#..#. +#...##.... + +Tile 3911: +.###...### +.#.......# +###.#....# +.###...... +..#.#.#... +....#.#... +#..#...#.. +#...#..#.# +.#.#..#..# +.#.#....#. + +Tile 2833: +.#####...# +..##....## +#####..... +.#..##..## +#.#..#.#.. +#..###.#.. +#.#.##...# +...#..#..# +...#..##.. +#.#....... + +Tile 1117: +...#####.# +.##...#... +.........# +##......#. +....#..#.# +.###..#.## +###..##... +..##.#...# +#..#.##..# +.#..###... + +Tile 2693: +...#.#...# +##..#...## +.#.....##. +...#.#.... +.###.....# +...#...... +##.......# +#........# +....#..... +..#..###.. + +Tile 3527: +..##.##... +.#.#...... +##..#...## +#..##.#... +#...#...#. +#.#.#....# +#..##..##. +........#. +......##.# +.#####...# + +Tile 2417: +.###.#...# +....#....# +###....### +.......... +.#...###.. +.#####.##. +#.#.....## +.....#...# +..#..#.#.# +###.##.#.# + +Tile 1723: +..#####.## +#..##..#.. +#..##...#. +..#.....## +..#...#... +....#...## +....#..... +#...#....# +...#..###. +.##.##.... + +Tile 2251: +.....##### +..#......# +#....#..#. +.#.##.#..# +.....#..## +........## +.......... +.#...#...# +.#..#..#.. +#.#..##.#. + +Tile 3761: +#.#.#...#. +#.#.#.#.#. +#..#....#. +#......... +##.##..#.# +...#...... +##..#..... +#...###.#. +..###....# +..##.##... + +Tile 1697: +.#...#.... +..##..#... +#........# +##..#...## +......##.# +...##...#. +..##...#.. +.####....# +..#......# +##.#.#.#.# + +Tile 1879: +..#...#.#. +#.#.....## +..#..#..## +.......#.# +#...#...#. +........## +##.#.....# +..###...#. +.....#.#.. +#....#..## + +Tile 1901: +##.#.#.### +.....#.... +##.#.....# +#.#.#.#... +.#........ +####.#...# +#.#...##.# +.##.##.##. +..##...##. +#.#...##.. + +Tile 1063: +..#######. +.....#.##. +...#...... +#........# +#........# +#.#..##... +...#...#.# +###...#..# +#.#.....#. +.###..#.## + +Tile 2389: +.###.###.# +...#...#.. +..#.....#. +...#..#... +.#...#.... +#...##..#. +#...##.#.. +#.#.#..... +##...#..#. +##.#.#..#. + +Tile 2393: +..#..#.#.. +..#..##... +....#.#... +#..#.....# +##........ +#.##...#.. +....##...# +...##....# +...##.#.## +#.#.#.#### + +Tile 3067: +.....##..# +.#........ +#..##..#.. +#.#...#.## +#..###.#.# +#...#...## +#.##.#..## +...##...#. +.##...#.## +#.....#... + +Tile 1747: +.#######.# +#...##.... +....###..# +##...#.#.. +#..#.#..#. +#..#.#.#.# +..###.##.. +#.#.##..## +.......... +###.#####. + +Tile 3797: +..#######. +#.#.#..... +.......... +#..##.##.. +##..##.#.. +#.#.#...#. +.###.#..#. +##...##.#. +#..##.##.# +.##.#.##.# + +Tile 1811: +##..###... +.......##. +......#..# +..##....#. +##..###### +#...#...#. +####...... +#..#.##... +#..##....# +###.#...## + +Tile 1087: +.##.##..#. +.#.##...## +.#......## +.#.....##. +...#.#.##. +###.#..### +###.#...## +####..#... +##...#...# +...#.#...# + +Tile 1181: +...##...## +....#..##. +.#...#..## +##.#...#.# +..#.#.#.## +##.......# +#...#.###. +#.#.....#. +.#......## +..#.#.#..# + +Tile 3821: +.#...#.#.. +..#....### +..##.#..#. +#...#.#..# +#.###...#. +..##..##.. +#.#.#..#.# +....####.# +#......... +..#.#..... + +Tile 3457: +#..#....## +#........# +#.#..#.#.# +##.....#.. +.....###.# +.#.##....# +#.....#..# +##...#...# +.#.....#.# +##.##...## + +Tile 1657: +###..#.### +....#..### +..#...#..# +...###..#. +.....####. +#......#.. +.##...#.#. +.#.#.#.##. +....#...#. +...#.##.#. + +Tile 2503: +.#....##.. +#.#...#... +##..####.. +.#.#.....# +#.#..##... +...###...# +...##....# +.....#...# +.....##... +..#...#### + +Tile 2843: +....#####. +#.......## +#...#.##.. +.#.#.#...# +..#.##...# +..#..#.### +.......#.. +....#..### +......#.#. +#.####.##. + +Tile 2273: +#....##..# +##.#....#. +#.###...#. +#......... +...#...... +####...... +#.##.....# +#..##..#.. +#.......## +.#..#..### + +Tile 2953: +.#.#.###.. +#...##.#.. +.#........ +....#....# +...##..##. +#.....#... +#.....#... +#...#.##.. +.#......#. +###..#..## + +Tile 1021: +##.#.###.# +##....##.. +#......#.. +...#...#.# +#.##.....# +......#... +#..#...... +.##...#... +#...#...## +.##...#..# + +Tile 3643: +#...#..... +...#...#.. +......#.## +.....###.. +.....#.### +.....#.#.. +.......##. +##..#.#... +#......#.. +..#.####.. + +Tile 1609: +##.#.#..## +.......... +#.#..#.#.. +####...### +.#...#..#. +##....##.. +#.#.##..## +#...##.... +##....#.#. +###..#.#.. + +Tile 1949: +#.#.#.##.. +#.#....... +#.#......# +###.#....# +...#.##... +#...#..... +.#...#.... +...##.#... +.#..#....# +.##..###.# + +Tile 1153: +.##.##..#. +..#......# +#.#.....#. +##.##..##. +#.#......# +....#....# +.#.##....# +#.#..#...# +..#...#.## +#.#.##..## + +Tile 1367: +.###.##### +.........# +#.##....## +....##..## +.#.#.....# +####..##.. +..#.###..# +.#..##.#.# +..#.....## +#...##.### + +Tile 1061: +..####.... +.......#.# +#.....#... +#..#.##..# +#.##....#. +.#...#.#.# +###.....## +..#...#... +...#.##.## +.#....#... + +Tile 1193: +...#....## +...###..## +#..##....# +#....#.... +#...#..#.# +..##.##..# +.#.###...# +##....#..# +#...#..##. +####.#.... + +Tile 3617: +#..#.#..#. +#.#.#.##.. +#.##.#..## +#.#.#..... +###......# +##....#..# +.....##.#. +#......### +...###..## +.##.#..#.# + +Tile 1093: +#..##...#. +.#.#.#...# +#........# +.#...##..# +....#.#.## +#.....#.## +#........# +...#..#... +#.##..##.. +.#...#..## + +Tile 1549: +##..#.###. +..#......# +#.#..#..#. +........## +....#..#.# +#.#.#.#... +...##..#.. +######...# +#....##..# +.####..#.# + +Tile 2281: +###.###### +.#.#...... +#.#..##... +.#.#...### +..#...#..# +..##.....# +.......#.. +#....##..# +....#..#.. +..####..## + +Tile 3049: +.....##... +#..#...... +#....##... +#...#.#... +###...##.# +##....#... +##...##..# +#...#..... +.#.#.##... +######...# + +Tile 1523: +##..###.#. +.......#.. +##..####.. +.#...#...# +.....#..#. +.##.#.#..# +##.#.....# +###..#..#. +...##..... +##.##..... + +Tile 3671: +.#.#.###.# +.........# +...#..#... +...#.#.... +.#...#.### +###.#.#.## +..#......# +.......... +#..##.###. +#.##.####. + +Tile 3221: +...##.##.# +#....#...# +##..###... +#...##.#.. +##........ +##.....#.. +###....... +.......#.# +#.#..###.# +#..#.#...# + +Tile 1861: +.....##..# +##...#.#.# +#...#....# +....##...# +#..##..#.# +...#.#...# +##........ +#.#.#.#... +#......... +##......#. + +Tile 2111: +#....##.## +..#....#.# +......##.# +#..#..#... +..#..##.#. +##..###.#. +.#..#.#..# +.#.#...#.. +#.##.#...# +#.#..##..# + +Tile 1049: +..#.###### +.#......#. +.........# +....##..#. +.#....#..# +....##..## +..#......# +#..#.#...# +##........ +.#.##..##. + +Tile 1871: +.##.##.#.# +#...#..... +#..#.#..## +.###..#.## +.....#.... +#....#.#.# +#..##....# +.#.##....# +.#...##.## +.##.#.#### + +Tile 3389: +...###..#. +.#...#..#. +###....... +.#...#.#.# +.#.#.#.#.# +#..##.###. +..###..##. +#...#..... +#.#...#... +##.##.#.## + +Tile 2699: +.#..#.#### +#...#.#.#. +##.....#.# +#....#...# +..#...#... +...###..## +#.#.##..#. +...###.##. +#....##.#. +#..#..#.#. + +Tile 3181: +#.##.#..## +#......##. +........#. +##.###.... +##.......# +#......... +##...#...# +#.#.#....# +...#.....# +#..###.... + +Tile 3469: +..##...#.# +...##..#.# +##.##.#.## +.#####.### +..#......# +.#......## +..#..####. +##.#.#..#. +.#......## +#..##.#... + +Tile 1249: +##.###...# +.#........ +....#..#.# +#.....#..# +#.###..#.. +.#.......# +.....#.#.. +##....#... +.#...##..# +.#..###.## + +Tile 1907: +.####.#### +#....###.# +...#.#..#. +..#..#..## +#..##...## +#.#....... +#...##...# +#..#...#.. +.#...###.. +...###.##. + +Tile 2539: +...#.##.#. +##.....#.# +#..##..... +#####..... +#..#.#..#. +###..#.... +....#..#.# +.......#.# +#.#.....#. +#..#####.# + +Tile 1217: +.#.###.### +.........# +#.....#... +##..#.#... +..#.#..... +......##.# +.#.......# +#.#.#.#... +...###.#.. +..####...# + +Tile 2377: +.#...##..# +..#...#..# +........## +.........# +.#....#... +.###.....# +#....#.... +.#...###.# +...#..#..# +###.#..### + +Tile 2767: +.####..#.. +##....#..# +#..#....#. +#..#.##### +###....#.. +..#..#.### +#...#..... +#.#......# +.#...#..#. +#.#.#.#### + +Tile 2879: +#.....#..# +.#..#..#.# +##....##.. +.......... +#...#...#. +##.......# +#.###.#..# +.......##. +....####.. +..##...##. + +Tile 2683: +.##..##... +.#........ +#..#.##..# +.#.#..##.# +........## +#.#......# +....#.##.# +#.##.#..#. +#.#.#...#. +#...##.#.# + +Tile 2003: +.#.#.###.# +#..##.#... +##...##... +.#...##..# +.#..##.##. +#...##...# +#...#.#... +.#...#.##. +.......... +######.... + +Tile 1511: +#..#.#..## +......#... +#.#.#..#.# +##..#....# +##......#. +#......... +.....#.#.. +..##...... +...##...## +..##...### + +Tile 3967: +.##..###.# +....#....# +#.##...#.# +#......#.# +#.....#### +..##....#. +#.#.#....# +....#..... +##.#.....# +#.###.###. + +Tile 3343: +##.#.#.... +.......#.# +..#......# +..##.#..#. +##....##.# +.#.#...... +...#..#.## +#..#.##..# +.#.#.#.#.. +..##..#..# + +Tile 2269: +##........ +#........# +.........# +...##..### +.###.##.## +#....##..# +.#..#.##.# +##.#...#.. +##....#.## +..#.#....# + +Tile 2063: +#...#.##.# +##.......# +.#..#..... +.##...###. +.#.....#.. +..#.....#. +..#####.#. +#####...## +##.#...##. +.#.....##. + +Tile 2857: +...##.#### +##......## +#.#.#.#... +.#.###.... +......#... +.........# +.#......## +.#.#.....# +#.#.#..... +..##.#.#.. + +Tile 3167: +.....#.... +...###.... +...##..... +.....#..## +..#.###..# +#..#....#. +..####.... +.......#.. +#...##..## +#...###... + +Tile 2551: +.#.###.... +#.##..#.#. +..###.#.#. +#..####.## +.......##. +..##.#.... +.#..#....# +####....#. +#.##..###. +#....#.### + +Tile 2707: +..###..#.# +.....#.### +#....#...# +##....##.# +...#..#.## +.##.#..##. +#...#.#.#. +#.....#..# +..##.##.#. +######.#.# + +Tile 3607: +...#..#.#. +#.#..#..## +..##...#.# +##.#.....# +##...##... +#.#..#.... +#........# +.#..##..## +####...### +##.#..#### + +Tile 2113: +....#..... +.....#...# +...#..#..# +##..#.#... +...##..... +#.##..#..# +.....#..## +#..#.#.... +#.#.###... +.#.####..# + +Tile 2371: +##.##...## +#.#......# +##.#...... +#......#.# +....#....# +##...#.#.# +#...#...## +#....#...# +..#..#...# +......#..# + +Tile 2741: +###..##### +#..#..##.# +##...##... +##........ +...##...#. +.##.....#. +.#..#.#.#. +#.#......# +..##....## +.###...... + +Tile 3779: +..#.....#. +##.......# +..#.#.##.# +.###.#.##. +.#..####.. +#####.#..# +...#.....# +#...#..... +.........# +.##...#.#. + +Tile 1483: +##.#..##.. +#.#....#.# +.......... +....#.#..# +#...#....# +#....#...# +..##.#..#. +#..###.### +..##.#.... +..#.##.... + +Tile 2927: +####.##### +.###...... +#..##..#.# +##...#.... +##.#..#... +.##.#..... +.#........ +.......... +#........# +.##....#.. + +Tile 2153: +#.#..##### +#..#...#.. +#.......## +##..#.#### +....##.#.# +#.#.##.... +.#..##.#.. +..#.##..#. +#.#####..# +...#.##.## + +Tile 1453: +.....###.. +...#...... +.#.#..#..# +.#..#...## +.####..#.. +...#..##.. +....#.#.## +.##....##. +##......#. +.##.#...## + +Tile 2423: +#..##.###. +##...##..# +#......... +.#...#..## +#......... +.....##... +#...#..... +.......#.. +#....#.... +..##...### + +Tile 1933: +#.##.###.# +##....#... +#..##...#. +.......#.. +##....#..# +....#..##. +#..#...... +.#........ +..#.#..... +##....###. + +Tile 3191: +.#####.#.# +##.#.....# +....#...#. +##.#...... +...#...##. +..#..#...# +#..#..#... +#..#...... +..#.###### +.###..#..# \ No newline at end of file diff --git a/2020/20/input_sample.txt b/2020/20/input_sample.txt new file mode 100644 index 0000000..b3aed46 --- /dev/null +++ b/2020/20/input_sample.txt @@ -0,0 +1,107 @@ +Tile 2311: +..##.#..#. +##..#..... +#...##..#. +####.#...# +##.##.###. +##...#.### +.#.#.#..## +..#....#.. +###...#.#. +..###..### + +Tile 1951: +#.##...##. +#.####...# +.....#..## +#...###### +.##.#....# +.###.##### +###.##.##. +.###....#. +..#.#..#.# +#...##.#.. + +Tile 1171: +####...##. +#..##.#..# +##.#..#.#. +.###.####. +..###.#### +.##....##. +.#...####. +#.##.####. +####..#... +.....##... + +Tile 1427: +###.##.#.. +.#..#.##.. +.#.##.#..# +#.#.#.##.# +....#...## +...##..##. +...#.##### +.#.####.#. +..#..###.# +..##.#..#. + +Tile 1489: +##.#.#.... +..##...#.. +.##..##... +..#...#... +#####...#. +#..#.#.#.# +...#.#.#.. +##.#...##. +..##.##.## +###.##.#.. + +Tile 2473: +#....####. +#..#.##... +#.##..#... +######.#.# +.#...#.#.# +.######### +.###.#..#. +########.# +##...##.#. +..###.#.#. + +Tile 2971: +..#.#....# +#...###... +#.#.###... +##.##..#.. +.#####..## +.#..####.# +#..#.#..#. +..####.### +..#.#.###. +...#.#.#.# + +Tile 2729: +...#.#.#.# +####.#.... +..#.#..... +....#..#.# +.##..##.#. +.#.####... +####.#.#.. +##.####... +##..#.##.. +#.##...##. + +Tile 3079: +#.#.#####. +.#..###### +..#....... +######.... +####.#..#. +.#...#.##. +#.#####.## +..#.###... +..#....... +..#.###... \ No newline at end of file