Something went wrong. Try again.
My Advent of Code solutions in Python. kevinyap.ca/2019/12/going-fast-in-advent-of-code
advent-of-code python
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950# -*- coding: utf-8 -*-# import sys# import timeimport fileinput
from utils import parse_line
WIDTH = 50HEIGHT = 6SCREEN = [[False for _ in range(WIDTH)] for _ in range(HEIGHT)]
# Make space for animated output# print '\n' * HEIGHT
for line in fileinput.input(): if line.startswith('rect'): a, b = parse_line(r'rect (\d+)x(\d+)', line)
for y in range(b): for x in range(a): SCREEN[y][x] = True
else: rc, n, offset = parse_line(r'rotate (\w+) .=(\d+) by (\d+)', line)
if rc == 'row': temp = SCREEN[n][:] for i, x in enumerate(temp): SCREEN[n][(offset+i) % WIDTH] = x
else: temp = [row[n] for row in SCREEN] for i, x in enumerate(temp): SCREEN[(offset+i) % HEIGHT][n] = x
# sys.stdout.write('\033[F' * HEIGHT)
# for row in SCREEN: # print ''.join('█' if x else ' ' for x in row)
# time.sleep(0.02)
print ''for row in SCREEN: print ''.join('█' if x else ' ' for x in row)
print "\nNumber of lit pixels: %i" % sum(sum(row) for row in SCREEN)