Squares Fixed by test

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

Note that non-ascii characters in the above source code will be escaped (such as \x9f).

download

return top