Ever so slightly changed your code.
' NO SUBSTITUTE
'
OPTION EXPLICIT
SCREEN 19,,2,
SCREENSET 1,0
DIM SHARED as INTEGER X,Y,B,B1,B2,B3,B4,B5,X1,XX,XXG,YYG,YY,Y1,X2,X3,X4,X5,X6,X7,X8,Y3,Y4,Y2
DIM SHARED AS DOUBLE A,C,D,E,F,G'ADD MOVEMENTS FOR CIRCLE
X1=10'RECT 1
X=300'BLUE CIRCLE
XX=120'RED CIRCLE
YY=120'RED CIRCLE
XXG=480'WHITE CIRCLE
YYG=400'WHITE CIRCLE
Y=80'BLUE CIRCLE
B=0'HORIZ MOVEMENT BLUE
B1=0'VERT MOVENENT BLUE
B2=0'HORIZ MOVE RED
B3=0'VERT MOVE RED
B4=0'HORIZ MOVE WHITE
B5=0'VERTICAL MOVE WHITE
X2=10'RECT1
X3=30'RECT1
Y1=20'RECT1
Y2=580'RECT1
Y3=40'TOP REC
Y4=560'BOT REC
X4=760'RECT2
X5=780'RECT 2
X6=60'TOP REC
X7=700'TOP&BOTT REC
DECLARE SUB DOUBLE_BUFFER()
DECLARE SUB MOVE_CIRCLE()
DECLARE SUB DRAW_RECT1()
DECLARE SUB DRAW_RECT2()
DECLARE SUB DRAW_RECT3()
DECLARE SUB DRAW_RECT4()
DECLARE SUB DRAW_CIRCLE()
' THESE LOOPS ARE NOT NEEDED;
'
' FOR A= 0 TO 1
' NEXT
' FOR C=0 TO 1.7'''''MOVEMENT FOR CIRCLES ?
' NEXT
' FOR D=0 TO 2'
' NEXT
' FOR E=0 TO 3
' NEXT
' FOR G=0 TO 2.7
' NEXT
' DO IT LIKE THIS INSTEAD (THESE ARE THE VALUES THAT THE VARIALBES WOULD HAVE AT THE END OF THE LOOPS);
G=2.7
E=3
D=2
C=1.7
A=1
' MOVED THE SUB "MOVE_CIRCLE" UNDER THE OTHER SUBS FOR NEATNESS.
DO
DOUBLE_BUFFER()
DRAW_RECT1()
DRAW_RECT2()
DRAW_RECT3()
DRAW_RECT4()
DRAW_CIRCLE()
MOVE_CIRCLE()
LOOP UNTIL INKEY$<>""
END
'-------------------------------------------------------------------------------
SUB MOVE_CIRCLE()
IF B=0 THEN X=X+A
IF X>X4-39 THEN B=1
IF B=1 THEN X=X-D
IF X<X1+63 THEN B=0
IF B1=0 THEN Y=Y+A
IF Y>Y4-39 THEN B1=1
IF B1=1 THEN Y=Y-G
IF Y<Y1+60 THEN B1=0
IF B2=0 THEN XX=XX+C
IF XX>X4-39 THEN B2=1
IF B2=1 THEN XX=XX-E
IF XX<X1+63 THEN B2=0
IF B3=0 THEN YY=YY+D
IF YY>Y4-39 THEN B3=1
IF B3=1 THEN YY=YY-A
IF YY<Y1+60 THEN B3=0
IF B4=0 THEN XXG=XXG+E
IF XXG>X4-39 THEN B4=1
IF B4=1 THEN XXG=XXG-D
IF XXG<X1+63 THEN B4=0
IF B5=0 THEN YYG=YYG+G
IF YYG>Y4-39 THEN B5=1
IF B5=1 THEN YYG=YYG-A
IF YYG<Y1+60 THEN b5=0
END SUB
SUB DOUBLE_BUFFER()
SCREENCOPY
CLS
SLEEP 1
END SUB
SUB DRAW_RECT1()
line(X1,Y1)-(X2,Y2)
LINE(X1,Y1)-(X3,Y1)
LINE (X3,y1)-(X3,Y2)
LINE(X3,Y2)-(X2,Y2)
END SUB
SUB DRAW_RECT2()
LINE (X4,Y1)-(X4,Y2)
LINE (X4,y1)-(X5,y1)
LINE (X5,Y1)-(X5,y2)
LINE(X5,Y2)-(X4,y2)
END SUB
SUB DRAW_RECT3()
LINE (X6,Y1)-(X7,Y1)
LINE (X6,Y1)-(X6,Y3)
LINE (X6,Y3)-(X7,Y3)
LINE (X7,Y3)-(X7,Y1)
END SUB
SUB DRAW_RECT4()
LINE (X6,Y4)-(X7,Y4)
LINE(X6,Y4)-(X6,Y2)
LINE(X6,Y2)-(X7,Y2)
LINE(X7,Y2)-(X7,Y4)
END SUB
SUB DRAW_CIRCLE()
CIRCLE(X,Y),40,1,,,1,F
CIRCLE(XX,YY),40,4,,,1,F
CIRCLE(XXG,YYG),40,15,,,1,F
END SUB
Well done for making the program display something that has a little bit of design too, K+
See the listing above for my comments.
Other comments?
You didn't put any comments in your listing, thats a really bad habit to get into. You should add descriptions to your listing.
Code is nicely laid out though.