清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
def parseBF(bf)
ptrIndex = 0
i = 0
x = -1
ptr = Array.new(bf.length, 0)
#create an array that would work in the case that every element of the BF string is '>', and fill it up with 0s
#the classic distrobutuion has an array of 30,000 spaces, but this gives in essence unlimited room
while i < bf.length
case bf[i].chr
when '+'then ptr[ptrIndex] += 1
when '-'then ptr[ptrIndex] -= 1
when '>'then ptrIndex += 1
when '<'then ptrIndex -= 1
when '.'then print(ptr[ptrIndex].chr)
when ','then ptr[ptrIndex] = STDIN.getc #get a single character
when '['then if ptr[ptrIndex] == 0
i += 1
x = 0
while x > 0 or bf[i].chr != ']' do
if bf[i].chr == '['
x += 1
elsif bf[i].chr == ']'
x -= 1
end #end if
i += 1
end #end while
end #end if
when ']'then x = 0
i -= 1
while x > 0 or bf[i].chr != '['
if bf[i].chr == ']'
x += 1
elsif bf[i].chr == '['
x -= 1
end #end if
i -= 1
end #end while
i -= 1
else #nothing , we ignore all extra characters
end #end case
i += 1
end #end while
end #end method