Frans Bergman 2 жил өмнө
parent
commit
d7afd2b578
2 өөрчлөгдсөн 188 нэмэгдсэн , 0 устгасан
  1. 146 0
      10.input
  2. 42 0
      10.py

+ 146 - 0
10.input

@@ -0,0 +1,146 @@
+noop
+noop
+addx 15
+addx -10
+noop
+noop
+addx 3
+noop
+noop
+addx 7
+addx 1
+addx 4
+addx -1
+addx 1
+addx 5
+addx 1
+noop
+noop
+addx 5
+addx -1
+noop
+addx 3
+noop
+addx 3
+addx -38
+noop
+addx 3
+addx 2
+addx 5
+addx 2
+addx 26
+addx -21
+addx -2
+addx 5
+addx 2
+addx -14
+addx 15
+noop
+addx 7
+noop
+addx 2
+addx -22
+addx 23
+addx 2
+addx 5
+addx -40
+noop
+noop
+addx 3
+addx 2
+noop
+addx 24
+addx -19
+noop
+noop
+noop
+addx 5
+addx 5
+addx 2
+noop
+noop
+noop
+noop
+addx 7
+noop
+addx 3
+noop
+addx 3
+addx -2
+addx 2
+addx 5
+addx -38
+noop
+noop
+noop
+addx 5
+addx 2
+addx -1
+addx 2
+addx 30
+addx -23
+noop
+noop
+noop
+noop
+addx 3
+addx 5
+addx -11
+addx 12
+noop
+addx 6
+addx 1
+noop
+addx 4
+addx 3
+noop
+addx -40
+addx 4
+addx 28
+addx -27
+addx 5
+addx 2
+addx 5
+noop
+noop
+addx -2
+addx 2
+addx 5
+addx 3
+noop
+addx 2
+addx -25
+addx 30
+noop
+addx 3
+addx -2
+addx 2
+addx 5
+addx -39
+addx 29
+addx -27
+addx 5
+noop
+noop
+noop
+addx 4
+noop
+addx 1
+addx 2
+addx 5
+addx 2
+noop
+noop
+noop
+noop
+addx 5
+addx 1
+noop
+addx 2
+addx 5
+addx -32
+addx 34
+noop
+noop
+noop
+noop

+ 42 - 0
10.py

@@ -0,0 +1,42 @@
+lines = [line.strip().split() for line in open("10.input")]
+
+X = 1
+cycle = 0
+
+snap_times = [20, 60, 100, 140, 180, 220]
+snaps = []
+
+pixels = []
+
+def run_cycle():
+    global cycle, snap_times, snaps, pixels, X
+
+    cycle += 1
+    if cycle in snap_times:
+        snaps.append(X)
+
+    col = (cycle - 1) % 40
+
+    if abs(col - X) <= 1:
+        pixels.append("█")
+    else:
+        pixels.append(" ")
+
+for line in lines:
+    if len(line) == 1:
+        run_cycle()
+    else:
+        run_cycle()
+        run_cycle()
+        X += int(line[1])
+
+# Part 1
+prod = [a * b for a, b in zip(snaps, snap_times)]
+print(sum(prod))
+
+# Part 2
+for row in range(0, 6):
+    for pos in range(row*40, (row+1)*40):
+        print(pixels[pos], end='')
+
+    print("")