>>638
$maze = [
'#######################################################',
'#S++++#+#+#+++++++#+++#+++++++++++#+#+++++#+++#+++++#+#',
#省略
]

def escape(sx,sy,dx,dy,st)
 st %= 10 unless st == -1
 case $maze[sy+dy][sx+dx]
 when 'S'
  if st == -1
   escape(sx,sy, 0,-1, 1)
   escape(sx,sy, 1, 0, 1)
   escape(sx,sy, 0, 1, 1)
   escape(sx,sy,-1, 0, 1)
  end
 when '+'
  $maze[sy+dy][sx+dx] = st.to_s
  escape(sx+dx,sy+dy, 0,-1, st+1)
  escape(sx+dx,sy+dy, 1, 0, st+1)
  escape(sx+dx,sy+dy, 0, 1, st+1)
  escape(sx+dx,sy+dy,-1, 0, st+1)
 when '#'
  return
 when 'G'
  puts $maze
  return
 else
  return
 end
end

escape(1,1,0,0,-1) # S