Skip to content

Instantly share code, notes, and snippets.

@pasberth
Forked from mana8626/brainfuck.rb
Created December 19, 2012 03:34
Show Gist options
  • Save pasberth/4334180 to your computer and use it in GitHub Desktop.
Save pasberth/4334180 to your computer and use it in GitHub Desktop.
# coding: utf-8
@eip = 0
@before_bracket = 0
@is_skip = false
@memory = Array.new(30000) { 0 }
@pointer = 0
# http://ideone.com/3Ev4dC このプログラム動いたっ
code = ">>>>>>>>>>>>+++[-<+++++>]<[-<<<<<<<<<<<+++++>+++++++>+>++++++++++++++>+++++++++++>+++++++++>++>++++++++++++>++++++++++++++>++++++++++>+++++++>]<++++++<---<----<+++++<++<---<++<++++++<-----<----<---.>.+++++++..+++.>.>.>.<+.>>.<<-.>++++++++++++.<+.>>.<<-.>------------.<+.>>+.>.<<<-.>>>>.<<<<+.>>-.<<.>>++++++.<<.>>-------.<<.>>++.<<<.>+++++++++++.>>>>++++.<<<-------.<+.>+++++.>>>.<<<<<.<<-.>.----------.-.+.-.---.++++++.>.<<-----.>++++++++.-.----.+++++.++++++.---.>.>>>>>>.>.<.<--------.>.<++++.>.<<<<+++++++.>>+.<<<<.>-----.>--------.++++.<.>----.++++++++++.<.>----------.>>>-.<<<<.>+.>++++++++.<<.>-..<.>+.>------.<<<.<<+.>---------.--------.>>>>>>>>>.<<<<<<<<.>+++.>>------.>>>>.<<<<<<.>>+.>>>>.<<<<<<.>>-.<++++++.<.>>.<----------.<.>>.>>---------.<<<<<.>+++++++++.>------------.-------------.<-.>---.>>>>>++.<<<<<<++.>>>>>>.+++.<<<<<<-.>++++++.>>>--.<<<<-.>.---.<-.>>>>+++.<<<--------.<<.<<.>>>>------.<<<++++.>>>>>>>---------.>+++.<-.<<<<+++++++++++++.<<.>>>>>>--.>++++++.<<<<<<<<<+++++.>++++++++++.---.-----------.>>>>>.<<<<."
def get_elem
@memory[@pointer]
end
def brainfuck command
if @is_skip
if command == "]"
@is_skip = false
end
return
end
case command
when "."
print get_elem.chr
when "+"
@memory[@pointer] += 1
when "-"
@memory[@pointer] -= 1
when ">"
@pointer += 1
when "<"
@pointer -= 1
when "["
if get_elem == 0
@is_skip = true
else
@before_bracket = @eip
end
when "]"
if get_elem != 0
@eip = @before_bracket
end
end
end
while @eip < code.length
ch = code[@eip]
brainfuck(ch)
@eip += 1
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment