' -−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−- 
' This program exported from BASIC Anywhere Machine (Version [5.2.3].[2024.07.01.10.00]) on 2024.07.02 at 04:13 (Coordinated Universal Time)
' This BAM Program by Charlie Veniot
' Inspired by the Small Visual Basic program found on Facebook (https://www.facebook.com/share/p/RfHe2pu4Xc31CQWM/)
' -−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−- 

SCREEN _NEWIMAGE( 601, 601, 17 )

DECLARE SUB DrawShape( a%, p% )
   ' 🔖 a% = angle, p% = TRUE or FALSE (whether to paint or not)
sc% = 62
   ' 🔖 Shape border colour

' -−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−- 
' Main Program

FOR a% = 0 TO 345 STEP 15
   IF sc% = 62 THEN sc% = 61 ELSE sc% = 62
      ' 🔖 The shapes overlap, so we need to generate them with alternating border colours so PAINT can find the boundaries of each shape
   COLOR sc% : CALL DrawShape( (a%), TRUE )
   COLOR 63 : CALL DrawShape( (a%), FALSE )
      ' 🔖 Redraw shape's border with the colour white
next a%

' -−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-
' Subroutines

SUB DrawShape( a%, p% )
   DRAW "bm300,300"
   DRAW "B TA" + a% + " U 160"
   a% = a% + 295
   px% = POINT(0) : py% = POINT(1)
   DRAW "TA" + a% + " U 150"
   _DELAY 0.02
   DRAW "TA" + ( a% + 5 ) + " R 64"
   _DELAY 0.02
   draw "TA" + ( a% + 345 ) + " D 170"
   _DELAY 0.02
   DRAW "M" + px% + "," + py%
   _DELAY 0.02
   IF p% THEN DRAW "B U 120" : DRAW "B L 4" : PAINT ( POINT(0), POINT(1) ), INT( RND * 60 + 1), sc% : _DELAY 0.05
END SUB