' This program exported from BASIC Anywhere Machine (Version [5.2.3].[2024.09.09.00.00]) on 2025.07.19 at 04:12 (Coordinated Universal Time)
' This program is a port and mod, by Charlie Veniot, of a PC-BASIC
' program by Richard Keijzer shared with the "BASIC Programming Language"
' Facebook group (https://www.facebook.com/share/p/16nkq6Kn6c/)

110 SCREEN _NEWIMAGE( 550, 520, 12 )
    COLOR , 63
    CLS
120 XA = 6 : YA = 5 : ZA = 25 : XB = 16 : YB = 4 : ZB = -28

125 SV = CHOOSE( INT( RND * 4 + 1 ), 1, 0.5, 0.4, 0.3 )
    COLOR INT( RND * 63 )
130 FOR Y = -10 TO 15 STEP SV : FOR X = -5 TO 30 STEP SV
140 T = X + 5 : GOSUB 200
150 NEXT X : SLEEP 0.1 : NEXT Y

    COLOR INT( RND * 63 ) 
160 FOR X = -5 TO 30 STEP SV : FOR Y = -10 TO 15 STEP SV
170 T = Y + 10 : GOSUB 200
180 NEXT Y : SLEEP 0.1 : NEXT X

190 SLEEP 1 : GOTO 125

' 🟠🟠🟠 GOSUB ROUTINE

200 XNEW = X * 20 + 10 * Y  
210 L  = SQR( ( XA - X ) ^ 2 + ( YA - Y ) ^ 2 ) + 1 : REM distance
220 L2 = SQR( ( XB - X ) ^ 2 + ( YB - Y ) ^ 2 ) + 1 : REM 2nd distance
230 YNEW = 270 - Y * 5 - 10 * ( ZA / L + ZB / L2 )
240 IF T > 0 THEN LINE ( XOLD, YOLD ) - ( XNEW, YNEW )
250 XOLD = XNEW : YOLD = YNEW
260 RETURN