(do((s(format()"~22T~{~20A~}~22@T"(loop while(listen)collect(read-line))))(p 22(+ p d)))(())(princ(elt"-/|\\"(max(-(abs(setf(elt s p)#\ d(find-if(lambda(d)(eq(elt s(+ p d))#\*))`(1 -1 20 -20 19 -19 21 -21))))18)0))))
Note that non-ascii characters in the above source code will be escaped (such as \x9f).