import sys instructions = [] li = None for c in open(sys.argv[1]).read(): if c != li: instructions.append([c,1]) li = c else: instructions[-1][1] += 1 m,k,i=[0]*2000,0,0 gotos = [None] * len(instructions) while i < len(instructions): if gotos[i] != None: i = gotos[i] c = instructions[i] i += 1 if c[0] == '+': k = (k+c[1]) % len(m) elif c[0] == '>': m[k] = (m[k]+c[1])%2000 if m[k] > 1000: m[k] = m[k]-2000 elif c[0] == '[': if not m[k]: gotos[i+c[1]] = None i = (i+c[1]) % len(instructions) else: gotos[i+c[1]] = i-1 print "Cells from 0..10 read:", m[:10]