1 cx=8:cy=8:IMAX=100:DIM px(IMAX),py(IMAX),psens(IMAX):cls:r(0)=4.25:r(1)=9.2:r(2)=6.3:r(3)=9.2:o=3.14159/8
2 fori=1to16:line (cx+int(r((i-1)MOD4)*sin((i-1)*o)+0.5),cy+int(r((i-1)MOD4)*cos((i-1)*o)+0.5))-(cx+int(r(i MOD4)*sin(i*o)+0.5),cy+int(r(i MOD4)*cos(i*o)+0.5))"*":next
3 dx(0)=0:dy(0)=-1:dx(1)=1:dy(1)=0:dx(2)=0:dy(2)=1:dx(3)=-1:dy(3)=0:psens(1)=0:sens=0:x=cx:y=cy:px(1)=x:py(1)=y:ip=1:locate x,y:?"*"
4 x=px(ip):y=py(ip):sens=psens(ip):ifsens=4then7
5 x=x+dx(sens):y=y+dy(sens):ifscreen(x,y)<>42thenip=ip+1:px(ip)=x:py(ip)=y:psens(ip)=0:locate x,y:?"*":goto4
6 sens=sens+1:psens(ip)=sens:goto4
7 ifip>1thenip=ip-1:goto4
