Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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()]))
Exemplo n.º 3
0
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])