Ejemplo n.º 1
0
def get_painted_grid(instructions: List[int], initial_color: int):
    intcode = IntCode(instructions)
    directions = [(0, -1), (1, 0), (0, 1), (-1, 0)]
    position = (0, 0)
    point_colors: dict = {position: initial_color}
    result_direction = 0
    direction_idx = 0
    while result_direction is not None:
        intcode.with_input(
            point_colors[position] if position in point_colors else COLOR_BLACK
        )
        result_color = intcode.run_instructions()
        result_direction = intcode.run_instructions()
        if result_direction is not None:
            point_colors[position] = result_color
            direction_idx = (
                (direction_idx + 1)
                if result_direction == OUTPUT_TURN_RIGHT
                else (direction_idx - 1 + len(directions))
            ) % len(directions)
            position = (
                position[0] + directions[direction_idx][0],
                position[1] + directions[direction_idx][1],
            )
    return point_colors
Ejemplo n.º 2
0
from intcode import IntCode

INPUT_DEBUG = 1
INPUT_BOOST = 2

instructions = IntCode.read_instructions("input.txt")
intcode = IntCode(instructions).with_input(INPUT_BOOST)
result = 0
while result is not None:
    result = intcode.run_instructions()
    if result is not None:
        print(f"Output: {result}")