fork download
  1. import sys,random
  2. f=sys.stdin.read().split('\n')
  3. s=t=[]
  4. d=p=x=y=k=0
  5. r='n'
  6. h='0123456789abcdef'
  7. while h:
  8. c=f[y][x]
  9. if k:k=0
  10. elif p:
  11. if c==p:p=0
  12. else:s+=[ord(c)]
  13. else:
  14. for l in (h+'''0123456789abcdef`s+=[h.find(c)]
  15. ><^v`d='><^v'.find(c)
  16. x`d=random.randint(0,3)
  17. /`d=(d+2)%4
  18. \`d=3-d
  19. |#`if d<2:d=1-d
  20. _#`if d>1:d=5-d
  21. +-*,%=)($gp`a,b=s[-2:];s=s[:-2]
  22. +-*%`s+=[eval('a%sb'%c)]
  23. ,`s+=[a/b]
  24. =`s+=[a==b]
  25. (`s+=[a<b]
  26. )`s+=[a>b]
  27. '"`p=c
  28. !?`if(not s)or'!'==c or s[-1]==0:k=1
  29. :`s+=s[-1:]
  30. ~`s.pop()
  31. $`s+=[b,a]
  32. @`s=s[:-3]+s[-1:]+s[-3:-1]
  33. &`s,r=(s[:-1],s[-1])if r=='n'else (s+[r],'n')
  34. .`s,t=t,s
  35. r`s.reverse()
  36. }`s=[:-1]+s[-1:]
  37. {`s=s[1:]+s[:1]
  38. m`s,t=[],s+t
  39. g`s+=[f[b][a]]
  40. p`f[s.pop()][b]=a
  41. on`z=chr if c=='o'else str;sys.stdout.write(z(s.pop()));sys.stdout.flush()
  42. i`s+=[int(sys.stdin.read(1))]
  43. ;`h=0''').split('\n'):
  44. l=l.split('`')
  45. if c in l[0]:
  46. try:exec(l[1])
  47. except:0
  48. if d<2:x=(x-d*2+1)%len(f[y])
  49. else:
  50. while 1:
  51. try:y=(y+d*2-5)%len(f);f[y][x];break
  52. except:0
Success #stdin #stdout 0.02s 6508KB
stdin
"Hello World!"r>?o?<;
stdout
Hello World!