None1/BCT Python
Jump to navigation
Jump to search
BCT interpreter in Python, prints debug information since it has no I/O.
from time import sleep
class CyclicList(list):
def __getitem__(self, x):
return super().__getitem__(x % self.__len__())
code = CyclicList(map(int, input("Code: ")))
data = list(map(int, input("Data-string: ")))
ip = 0
while 1:
print(f'IP: {ip%len(code)}\t Data-string: {"".join(map(str,data))}')
if not code or not data:
print("Halt!")
break
op = code[ip]
if op:
if data[-1]:
data.append(code[ip + 1])
ip += 2
else:
data.pop()
ip += 1
sleep(0.2)