a=['']+[*$<]+[''] ($.+1).times do |i| j = 0 s=a[i][0]==?. ? '|' : ' ' while a[i+1][j] || a[i][j] do b = ' ' b[0]= ?_ if a[i][j]==?. || a[i+1][j]==?. b[1]= ?| if a[i][j]==?. || a[i][j+1]==?. s += b j += 1 end puts s.rstrip end