MIX

From Esolang
Jump to navigation Jump to search
Not to be confused with MIX (Knuth), a computer architecture by Donald Knuth.

MIX is an esoteric language invented by User:Feuermonster in April 2008. MIX has one integer (called buffer) to store data. I couldn't write a hello world program till now. But it should be possible.

Instructions

  • 0 Prints out the buffer as a character
  • 1 Adds 1 to the buffer
  • 2 Subtracts 1 from the buffer
  • 3 Adds 60 to the buffer
  • 4 Sets the buffer to zero
  • 5 Buffer %= 256
  • 6 Adds the buffer to the counter
  • 7 Subtracts the buffer from the counter
  • 8 Adds the buffer to the index
  • 9 Subtracts the buffer from the index

What's MIX

MIX mixes the array, actually it just shifts.

Interpreter

def main():
	op = ['9','9','9','9']
	code_ = raw_input("Code: ")
	index = 3
	i=0
	code=[]
	buffer=65
	output=''
	to_ip = 0
	for chr_ in code_:
		code.append(int(chr_))
	while (i < len(code)):
		op[0] = code[i % len(code)]
		op[1] = code[(i+op[0]) % len(code)]
		op[2] = int(int(op[1])+int(op[2])) % 10
		op[3] = int(int(op[1])*int(op[2])) % 10
		if(to_ip==''):
			i+=1
			continue
		to_ip = op[i % 4];
		to_ip = int(to_ip)
		if(to_ip==0):
			output += str(chr(buffer))
		if(to_ip==1):
			buffer+=1
		if(to_ip==2):
			buffer-=1
		if(to_ip==3):
			buffer+=60
		if(to_ip==4):
			buffer=0
		if(to_ip==5):
			buffer = buffer % 256
		if(to_ip==6):
			i += buffer
		if(to_ip==7):
			i -= buffer
		if(to_ip==8):
			index += buffer
		if(to_ip==9):
			index -= buffer
		temp = op[0]
		#print op
		#print to_ip
		index+=1
		i+=1
	print output
main()
raw_input()