home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frostbyte's 1980s DOS Shareware Collection
/
floppyshareware.zip
/
floppyshareware
/
USCX
/
GAMES-14.ZIP
/
FLY.BAS
< prev
next >
Wrap
BASIC Source File
|
1980-01-01
|
5KB
|
178 lines
10 '*****************
20 '** FLY **
30 '*****************
40 '
50 CLEAR
60 GOSUB 1730
70 SCREEN 1
80 KEY OFF
90 CLS
100 COLOR 1,7
110 OPTION BASE 1
120 DEFINT X,Y
130 DIM FLY0(21),FLY1(21),FLY2(21)
140 DIM SWAT(714)
150 DIM X(3),Y(3)
160 DELAY=3000
170 '
180 ' Build the fly images
190 BODY$="c1u5be1d6r1u6bf1d5"
200 URWING$="c3bu3br1e3r1g3r1e3"
210 ULWING$="bg3bl7h3l1f3l1h3"
220 DRWING$="c3br6h3l1f3l1h3"
230 DLWING$="bl5g3l1e3l1g3"
240 DRAW BODY$+URWING$+ULWING$
250 DRAW "bd20br6"
260 DRAW BODY$+DRWING$+DLWING$
270 GET (131,91)-(152,103),FLY0
280 GET (151,91)-(172,103),FLY1
290 GET (151,105)-(172,117),FLY2
300 '
310 ' Build the swatter image
320 CLS
330 LINE (0,50)-(75,135),3,BF
340 FOR X = 5 TO 65 STEP 10
350 FOR Y = 55 TO 125 STEP 10
360 LINE (X,Y)-(X+5,Y+5),0,BF
370 NEXT Y,X
380 FOR Y = 106 TO 135
390 IF Y < 111 THEN CLR=3 ELSE CLR=0
400 DRAW "c=clr; bm0,=y; m+25,25 m+25,0 m+25,-25"
410 NEXT Y
420 LINE (30,136)-(45,199),1,BF
430 GET (0,50)-(75,199),SWAT
440 '
450 ' Draw the screen border
460 CLS
470 LINE(0,0)-(319,199),2,BF
480 LINE(9,9)-(310,190),3,BF
490 '
500 ' Next fly appears
510 LINE(15,15)-(304,184),0,BF
520 FOR I = 1 TO 7+5*RND
530 FLY=INT(3*RND+1)
540 BUZZ=0
550 SOUND 47,0
560 SOUND 63+7*RND,999
570 WHILE BUZZ < DELAY
580 PUT(74*FLY,67),FLY1,PSET
590 PUT(74*FLY,67),FLY2,PSET
600 BUZZ=BUZZ+99
610 WEND
620 SOUND 47,0
630 PUT(74*FLY,67),FLY0,PSET
640 NEXT I
650 '
660 ' Swatters schwaapf into screen
670 FOR SWIPE = 1 TO 3
680 SOUND 999,1
690 PUT (87*SWIPE-51,35),SWAT
700 NEXT SWIPE
710 '
720 ' How well did you follow the fly?
730 K$ = INKEY$
740 IF K$ <> "" THEN 730
750 LOCATE 3,7
760 PRINT "CHECK WHICH SWATTER (1,2,3) ?
770 K$=INKEY$
780 IF K$ = "" THEN 770
790 IF K$<>"1" AND K$<>"2" AND K$<>"3" THEN 770
800 GUESS=VAL(K$)
810 LINE (87*GUESS-51,35)-(87*GUESS+24,184),0,BF
820 IF GUESS <> FLY THEN 1260
830 '
840 ' Another one bytes the dust
850 DELAY=.7370001*DELAY
860 GOSUB 1490
870 LOCATE 3,7
880 PRINT "GOT IT !!!";TAB(37);
890 SPOT=74*GUESS+9
900 FOR I = 0 TO 40
910 FREQ=99*SIN(2.1-I/17)^3+678
920 SOUND 99,0
930 SOUND FREQ,2
940 IF I MOD 3 = 0 THEN DRAW "bm=spot;,67"
950 CLR=INT(3*RND+1)
960 DX=INT(9*RND-4)
970 DY=INT(9*RND-4)
980 DRAW "c=clr; m+=dx;,=dy;"
990 NEXT I
1000 LINE (15,15)-(304,184),0,BF
1010 IF RANK=99 THEN 1620
1020 IF RANK <> 11 THEN 1100
1030 '
1040 ' You mad it past the first level of proficiency
1050 RANK=1
1060 LINE (15,15)-(304,184),0,BF
1070 LOCATE 12,4
1080 PRINT "YOU JUST MADE 'SENIOR DE-BUGGER'!!!"
1090 PLAY"MF O3 T200 L5 MS cde.cffcd.cde.cffcd..."
1100 IF RANK <> 12 THEN 1180
1110 '
1120 ' You made it past the second level of proficiency
1130 RANK=2
1140 LINE (15,15)-(304,184),0,BF
1150 LOCATE 12,4
1160 PRINT "WOW! WHAT A PROFESSIONAL! BUZZ ON!";
1170 PLAY"MF O3 T200 L5 MS ccg.ccg.efgedccffcd..."
1180 LINE (15,15)-(304,184),0,BF
1190 LOCATE 12,4
1200 PRINT "OH OH! HERE COMES A FASTER FLY ...";
1210 FOR I = 1 TO 999
1220 NEXT I
1230 GOTO 510
1240 '
1250 ' Missed it
1260 DELAY=1.47*DELAY
1270 IF DELAY > 3000 THEN DELAY=3000
1280 GOSUB 1490
1290 LINE (87*FLY-51,35)-(87*FLY+24,184),0,BF
1300 LOCATE 3,7
1310 PRINT "WHOOPS, IT GOT AWAY.";TAB(37);
1320 SOUND 57,47
1330 FOR I = 1 TO 100
1340 PUT (74*FLY,67),FLY1,PSET
1350 PUT (74*FLY,67),FLY2,PSET
1360 NEXT I
1370 LINE (15,15)-(304,184),0,BF
1380 LOCATE 12,7
1390 IF DELAY = 3000 THEN MISS$="HERE COMES ANOTHER ONE ..."
1400 IF DELAY < 3000 THEN MISS$="HERE COMES A SLOWER FLY ..."
1410 PRINT MISS$;
1420 IF SPEED < 9000 THEN RANK=1
1430 IF SPEED < 8000 THEN RANK=0
1440 FOR I = 1 TO 999
1450 NEXT I
1460 GOTO 510
1470 '
1480 ' Compute score and rank
1490 SPEED=(3000-DELAY)*10/3
1500 IF SPEED < 0 THEN SPEED=0
1510 LOCATE 25,5
1520 PRINT USING "SPEED = ####";SPEED;
1530 IF SPEED > RECORD THEN RECORD=SPEED
1540 LOCATE 25,22
1550 PRINT USING "RECORD = ####";RECORD;
1560 IF SPEED > 8000 AND RANK < 1 THEN RANK=11
1570 IF SPEED > 9000 AND RANK < 2 THEN RANK=12
1580 IF SPEED > 9999 THEN RANK=99
1590 RETURN
1600 '
1610 ' Best score possible!
1620 LOCATE 10,5
1630 PRINT "YOU DID IT!!! NO BUGS LEFT!!!"
1640 LOCATE 12,5
1650 PRINT "WELCOME TO THE S.W.A.T. TEAM !"
1660 PLAY "T169 L9 MS abcdefgacegecacgfedfdfdgdccedabbcaegfc"
1670 BGD = INT(RND * 6)
1680 PLT = INT(RND * 2)
1690 COLOR BGD,PLT
1700 GOTO 1660
1710 '
1720 ' Subroutine, reset random number sequence
1730 RANDOMIZE VAL(MID$(TIME$,4,2) +RIGHT$(TIME$,2))
1740 RETURN
0
1710 '
1720 ' Subroutine, reset random number sequence
1