data = [dat.strip().split(" ") for dat in open("input").readlines() if dat != ''] def solve(): signal_strength = 0 crt = [["?" for j in range(40)] for i in range(6)] col = row = 0 x = 1 cycle = timeout = i = 0 while i < len(data): instr = data[i] if cycle > 0 and cycle % 40 == 0: col = 0 row += 1 cycle += 1 if cycle - 20 >= 0 and (cycle - 20) % 40 == 0: signal_strength += cycle * x crt[row][col] = "█" if col in [x-1,x,x+1] else " " col += 1 if instr[0] == "noop": i += 1 elif timeout > 0 and instr[0] == "addx": timeout -= 1 if timeout == 0: x += int(instr[1]) i += 1 elif timeout == 0 and instr[0] == "addx": timeout = 1 print(f"Part 1: {signal_strength}") print("\n".join(["".join(row) for row in crt])) solve()