Exemplo n.º 1
0
def part1(data):
    prog = '\n'.join((
        'NOT C J',
        'AND D J',
        'NOT A T',
        'OR T J',
        'WALK\n',
    ))

    cpu = Intcode()
    cpu.load_program(data)
    cpu.set_ascii_mode(True)
    cpu.feed_inputs(*prog)
    cpu.run()
    out = cpu.read_output()

    try:
        print(''.join([chr(c) for c in out]))
    except ValueError:
        return (out[-1])
Exemplo n.º 2
0
def part2(data):
    prog = '\n'.join((
        'NOT I J',
        'AND H J',
        'NOT F T',
        'AND G T',
        'OR T J',
        'AND D J',
        'AND H J',
        'NOT A T',
        'OR T J',
        'NOT C T',
        'AND D T',
        'OR T J',
        #    'NOT C T',
        #    'AND D T',
        #    'OR T J',
        'RUN\n',
    ))

    prog = '\n'.join(('NOT A T', 'OR T J', 'AND G T', 'AND D T', 'AND H T',
                      'OR T J', 'NOT C T', 'AND D T', 'OR T J', 'RUN\n'))

    prog = '\n'.join(('NOT A J', 'OR E T', 'OR C T', 'NOT T T', 'AND D T',
                      'OR T J', 'OR B T', 'OR E T', 'NOT T T', 'OR T J',
                      'NOT I T', 'AND D T', 'OR T J', 'RUN\n'))

    cpu = Intcode()
    cpu.load_program(data)
    cpu.set_ascii_mode(True)
    cpu.feed_inputs(*prog)
    cpu.run()
    out = cpu.read_output()

    try:
        print(''.join([chr(c) for c in out]))
    except ValueError:
        return (out[-1])
    test_springscript(prog)
Exemplo n.º 3
0
def part2(data):
    cpu = Intcode(wfi_mode=True)
    cpu.set_ascii_mode(True)
    cpu.load_program(data)
    cpu.ram[0] = 2
    cpu.run()

    cpu.feed_inputs(
        *
        'A,B,A,B,C,C,B,A,C,A\nL,10,R,8,R,6,R,10\nL,12,R,8,L,12\nL,10,R,8,R,8\nn\n'
    )
    cpu.run()

    #cam = ''.join([chr(x) if chr(x).isprintable() or x == 10 and x < 0x110000 else str(x) for x in cpu.read_output() ]).strip().split('\n')
    cam = cpu.read_output()
    print(cam)
    '''
  from PIL import Image
  img = Image.new('RGB', (len(cam[0]), len(cam)), 'black')
  pix = img.load()
  for y, line in enumerate(cam):
    print(line)

    for x, char in enumerate(line):
      if char == '#':
        pix[x,y] = (0, 255, 128)

  img.save('day17.bmp')
  '''

    # L10 R8 R6 R10 L12 R8 L12 L10 R8 R6 R10 L12 R8 L12 L10 R8 R8 L10 R8 R8 L12 R8 L12 L10 R8 R6 R10 L10 R8 R8 L10 R8 R6 R10
    # L10 R8 R6 R10  = A
    # L12 R8 L12 = B
    # L10 R8 R8 = C
    # A B A B C C B A C A

    print(cpu.outputs)