49 lines
1.3 KiB
Text
49 lines
1.3 KiB
Text
maxBalls% = 10
|
|
DIM ballX%(maxBalls%), ballY%(maxBalls%)
|
|
|
|
VDU 23,22,180;400;8,16,16,128
|
|
ORIGIN 180,0
|
|
OFF
|
|
|
|
REM Draw the pins:
|
|
GCOL 9
|
|
FOR row% = 1 TO 7
|
|
FOR col% = 1 TO row%
|
|
CIRCLE FILL 40*col% - 20*row% - 20, 800 - 40*row%, 12
|
|
NEXT
|
|
NEXT row%
|
|
|
|
REM Animate
|
|
last% = 0
|
|
tick% = 0
|
|
GCOL 3,3
|
|
REPEAT
|
|
IF RND(10) = 5 IF (tick% - last%) > 10 THEN
|
|
FOR ball% = 1 TO maxBalls%
|
|
IF ballY%(ball%) = 0 THEN
|
|
ballX%(ball%) = 0
|
|
ballY%(ball%) = 800
|
|
last% = tick%
|
|
EXIT FOR
|
|
ENDIF
|
|
NEXT
|
|
ENDIF
|
|
FOR ball% = 1 TO maxBalls%
|
|
IF ballY%(ball%) CIRCLE FILL ballX%(ball%), ballY%(ball%), 12
|
|
IF POINT(ballX%(ball%),ballY%(ball%)-10) = 12 OR ballY%(ball%) < 12 THEN
|
|
IF ballY%(ball%) > 500 END
|
|
ballY%(ball%) = 0
|
|
ENDIF
|
|
NEXT
|
|
WAIT 2
|
|
FOR ball% = 1 TO maxBalls%
|
|
IF ballY%(ball%) THEN
|
|
CIRCLE FILL ballX%(ball%), ballY%(ball%), 12
|
|
ballY%(ball%) -= 4
|
|
IF POINT(ballX%(ball%),ballY%(ball%)-10) = 9 THEN
|
|
ballX%(ball%) += 40 * (RND(2) - 1.5)
|
|
ENDIF
|
|
ENDIF
|
|
NEXT
|
|
tick% += 1
|
|
UNTIL FALSE
|