1 PRINT TAB(27);"CUP" 2 PRINT TAB(20);"CREATIVE COMPUTING" 3 PRINT TAB(18);"MORRISTOWN, NEW JERSEY" 4 PRINT:PRINT:PRINT 10 DIM S(30,60) 30 LET L=INT(60*RND(1))+1 40 IF L=60 OR L=1 THEN 30 50 LET G=INT(10*RND(1))+1 60 PRINT "THE CUP IS 30 LINES DOWN AND ";L;" SPACES OVER." 70 PRINT "THE PULL OF GRAVITY IS ";G;" LINES/SECOND/SECDND." 80 PRINT "WHAT IS THE PUSH YOU WOULD LIKE TO GIVE THE BALL" 90 PRINT "ACROSS THE PAPER (IN SPACES/SECOND)"; 100 INPUT T 110 PRINT "THE RESULTS MAY TAKE ANYWHERE BETWEEN 30 AND 90 SECONDS." 120 FOR S1=1 TO 30:FOR S2=1 TO 60:S(S1,S2)=0:NEXT:NEXT 130 LET S(30,L)=S(30,L-1)=S(30,L+1)=S(29,L-1)=S(29,L+1)=1 140 FOR Z=1 TO SQR(60*G)/G STEP .01 150 LET Y=T*Z*2 160 LET X=G/2*Z^2 170 IF X>30.5 OR X<.5 OR Y>60.5 OR Y<.5 THEN 300 180 IF INT(X)=29 AND INT(Y)=L THEN 310 190 IF INT(X)+1=29 AND INT(Y)+1=L THEN 310 200 IF INT(X)=29 AND INT(Y)=L-1 THEN 310 210 IF INT(X)+1=29 AND INT(Y)+1=L-1 THEN 310 220 IF INT(X)=29 AND INT(Y)=L+1 THEN 330 230 IF INT(X)+1=29 AND INT(Y)+1=L+1 THEN 330 240 LET S(X,Y)=2 250 FOR D=1 TO 5 260 IF Y<6 THEN 290 270 LET S(X,Y-D)=0 280 NEXT D 290 NEXT Z 300 GOTO 340 310 LET W=1 320 GOTO 335 330 LET W=2 335 LET S(29,L)=2 337 GOTO 345 340 LET W=0 345 LET P$=" *." 360 LET S(30,L)=1:S(30,L-1)=1:S(30,L+1)=1: 365 LET S(29,L-1)=1:S(29,L+1)=1 370 FOR X=1 TO 30 380 FOR X1=1 TO 60 390 IF S(X,X1)<>0 THEN 420 400 NEXT X1 410 GOTO 500 420 FOR Y=1 TO 60 430 PRINT MID$(P$,S(X,Y)+1,1); 440 IF X=29 OR X=30 THEN 490 450 IF Y=60 OR Y=1 THEN 490 460 IF Y=1 OR Y=59 THEN 500 470 IF S(X,Y)=2 AND S(X,Y+1)=0 THEN 500 480 IF S(X,Y)=1 AND S(X,Y+1)=0 AND S(X,Y+2)=0 THEN 500 490 NEXT Y 500 PRINT 510 NEXT X 520 PRINT 530 IF W=1 THEN 570 540 IF W=2 THEN 590 550 PRINT "YOU MISSED; TRY AGAIN." 560 GOTO 60 570 PRINT "RIGHT IN!!!" 580 GOTO 600 590 PRINT "YOU ALMOST DIDN'T MAKE IT, BUT IT BOUNCED IN." 600 PRINT "DO YOU WANT TO PLAY AGAIN?" 610 INPUT A$ 620 IF LEFT$(A$,1)="Y" THEN 30 630 END