from intcode import Program if __name__ == "__main__": camera = Program("input.txt") camera.run(stop = 3) grid = camera.get_outputs() gridStr = ''.join([chr(x) for x in grid]) print(gridStr) # assumes bot doesnt start on intersection gridRows = gridStr.strip().split('\n') total = 0 for row in range(1, len(gridRows) - 1): for col in range(1, len(gridRows[row]) - 1): if gridRows[row][col] == '#': if (gridRows[row + 1][col] == '#' and gridRows[row - 1][col] == '#' and gridRows[row][col - 1] == '#' and gridRows[row][col + 1] == '#'): total += row * col print(total)
from intcode import Program def input_command(bot, text): for letter in text: bot.add_input(ord(letter)) bot.add_input(ord("\n")) if __name__ == "__main__": # Solved by hand bot = Program("input.txt") input_command(bot, "NOT D T") input_command(bot, "OR C T") input_command(bot, "AND A T") input_command(bot, "NOT T J") input_command(bot, "WALK") bot.run() print(''.join([chr(c) if c < 255 else str(c) for c in bot.get_outputs()]))
from intcode import Program # solved on paper main = "A,B,A,B,C,A,B,C,A,C\n" A = "R,6,L,6,L,10\n" B = "L,8,L,6,L,10,L,6\n" C = "R,6,L,8,L,10,R,6\n" if __name__ == "__main__": camera = Program("input.txt") camera.program[0] = 2 [camera.add_input(ord(c)) for c in main] [camera.add_input(ord(c)) for c in A] [camera.add_input(ord(c)) for c in B] [camera.add_input(ord(c)) for c in C] # no camera output camera.add_input(ord("n")) camera.add_input(ord("\n")) camera.run() print(camera.get_outputs()[-1])