Skip to content

Instantly share code, notes, and snippets.

@rigibun
Last active August 29, 2015 13:59
Show Gist options
  • Save rigibun/0153aba2fb0a0ff37f36 to your computer and use it in GitHub Desktop.
Save rigibun/0153aba2fb0a0ff37f36 to your computer and use it in GitHub Desktop.
require 'io/console'
memory = Array.new(30000, 0)
pointer = 0
director = 0
code = open(ARGV[0], "r").read
while director < code.size
char = code[director]
case char
when ">"
if pointer == 29999
exit
end
pointer += 1
when "<"
if pointer == 0
exit
end
pointer -= 1
when "+"
memory[pointer] += 1
when "-"
memory[pointer] -= 1
when "."
print memory[pointer].chr
when ","
memory[pointer] = getch.ord
when "["
if memory[pointer] == 0
bracket = 1
while bracket != 0
director += 1
bracket += 1 if code[director] == "["
bracket -= 1 if code[director] == "]"
end
end
when "]"
bracket = 1
while bracket != 0
director -= 1
bracket += 1 if code[director] == "]"
bracket -= 1 if code[director] == "["
end
director -= 1
end
director += 1
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment