示例#1
0
def paint_hull(paint_bot: IntcodeComputer, ship_hull: Hull) -> Hull:
    current_location = (0, 0)
    heading = 0
    while True:
        try:
            bot_input = ship_hull[current_location]
        except KeyError:
            bot_input = 0
        paint_bot.set_inputs([bot_input])

        code, color = paint_bot.execute()
        if code != IntcodeComputer.RETURNING_OUTPUT:
            break

        ship_hull[current_location] = color

        code, turn_direction = paint_bot.execute()
        if code != IntcodeComputer.RETURNING_OUTPUT:
            raise Exception("Should not be exiting here.")

        heading = (heading + ROTATIONS[turn_direction]) % len(DIRECTIONS)
        x, y, = current_location
        dx, dy = DIRECTIONS[heading]
        current_location = x + dx, y + dy

    return ship_hull
示例#2
0
from intcode_computer import IntcodeComputer
import copy

with open("Day 9/input.txt", "r") as f:
    codes = [int(i) for i in f.readline().split(",")]

comp = IntcodeComputer(optcodes=copy.deepcopy(codes), print_output=True)
comp.set_inputs(2)
comp.run()
from intcode_computer import IntcodeComputer
import copy

with open("Day 9/input.txt", "r") as f:
    codes = [int(i) for i in f.readline().split(",")]

comp = IntcodeComputer(optcodes=copy.deepcopy(codes), print_output=True)
comp.set_inputs(1)
comp.run()
示例#4
0
from itertools import permutations
from intcode_computer import IntcodeComputer

with open("Day 7/input.txt", "r") as f:
    codes = [int(i) for i in f.readline().split(",")]

sequences = list(permutations(range(5)))

max_val = 0
max_sequence = None

for sequence in sequences:
    amp_a = IntcodeComputer(codes)
    amp_a.set_inputs(sequence[0], 0)
    amp_a.run()

    amp_b = IntcodeComputer(codes)
    amp_b.set_inputs(sequence[1], amp_a.outputs[0])
    amp_b.run()

    amp_c = IntcodeComputer(codes)
    amp_c.set_inputs(sequence[2], amp_b.outputs[0])
    amp_c.run()

    amp_d = IntcodeComputer(codes)
    amp_d.set_inputs(sequence[3], amp_c.outputs[0])
    amp_d.run()

    amp_e = IntcodeComputer(codes)
    amp_e.set_inputs(sequence[4], amp_d.outputs[0])
    amp_e.run()