Taddeus Kroes 1 éve
szülő
commit
81049f87bc
1 módosított fájl, 9 hozzáadás és 51 törlés
  1. 9 51
      2024/14_robots.py

+ 9 - 51
2024/14_robots.py

@@ -23,56 +23,14 @@ def safety(positions):
     a, b, c, d = quadrants
     return a * b * c * d
 
-def show(positions, start, stride):
-    step = start
-    for pos in map(set, islice(positions, start - 1, None, stride)):
-        for y in range(H):
-            print(''.join('.X'[(x, y) in pos] for x in range(W)))
-        print('step', step)
-        input('click ENTER for next step')
-        step += stride
-
 positions = walk(tuple(map(int, re.findall(r'-?\d+', line)))
                  for line in sys.stdin)
-print(safety(next(islice(positions, 99, None, 1))))
-
-#with open('input/14', 'r') as f:
-#    robots = [tuple(map(int, re.findall(r'-?\d+', line))) for line in f]
-#positions = walk(robots)
-#show(positions, 129, 101)
-
-# Easter egg looks like this in step 7502:
-#
-# XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-# X.............................X
-# X.............................X
-# X.............................X
-# X.............................X
-# X..............X..............X
-# X.............XXX.............X
-# X............XXXXX............X
-# X...........XXXXXXX...........X
-# X..........XXXXXXXXX..........X
-# X............XXXXX............X
-# X...........XXXXXXX...........X
-# X..........XXXXXXXXX..........X
-# X.........XXXXXXXXXXX.........X
-# X........XXXXXXXXXXXXX........X
-# X..........XXXXXXXXX..........X
-# X.........XXXXXXXXXXX.........X
-# X........XXXXXXXXXXXXX........X
-# X.......XXXXXXXXXXXXXXX.......X
-# X......XXXXXXXXXXXXXXXXX......X
-# X........XXXXXXXXXXXXX........X
-# X.......XXXXXXXXXXXXXXX.......X
-# X......XXXXXXXXXXXXXXXXX......X
-# X.....XXXXXXXXXXXXXXXXXXX.....X
-# X....XXXXXXXXXXXXXXXXXXXXX....X
-# X.............XXX.............X
-# X.............XXX.............X
-# X.............XXX.............X
-# X.............................X
-# X.............................X
-# X.............................X
-# X.............................X
-# XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+for step in range(1, 101):
+    pos = next(positions)
+print(safety(pos))
+s = ''
+while 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' not in s:
+    pos = set(next(positions))
+    s = ''.join('.X'[(x, y) in pos] for y in range(H) for x in range(W))
+    step += 1
+print(step)