home *** CD-ROM | disk | FTP | other *** search
/ Hall of Fame / HallofFameCDROM.cdr / game3 / fly.bas < prev    next >
BASIC Source File  |  1987-03-16  |  5KB  |  178 lines

  1. 10 '*****************
  2. 20 '**     FLY     **
  3. 30 '*****************
  4. 40 '
  5. 50 CLEAR
  6. 60 GOSUB 1730
  7. 70 SCREEN 1
  8. 80 KEY OFF
  9. 90 CLS
  10. 100 COLOR 1,7
  11. 110 OPTION BASE 1
  12. 120 DEFINT X,Y
  13. 130 DIM FLY0(21),FLY1(21),FLY2(21)
  14. 140 DIM SWAT(714)
  15. 150 DIM X(3),Y(3)
  16. 160 DELAY=3000
  17. 170 '
  18. 180 ' Build the fly images
  19. 190 BODY$="c1u5be1d6r1u6bf1d5"
  20. 200 URWING$="c3bu3br1e3r1g3r1e3"
  21. 210 ULWING$="bg3bl7h3l1f3l1h3"
  22. 220 DRWING$="c3br6h3l1f3l1h3"
  23. 230 DLWING$="bl5g3l1e3l1g3"
  24. 240 DRAW BODY$+URWING$+ULWING$
  25. 250 DRAW "bd20br6"
  26. 260 DRAW BODY$+DRWING$+DLWING$
  27. 270 GET (131,91)-(152,103),FLY0
  28. 280 GET (151,91)-(172,103),FLY1
  29. 290 GET (151,105)-(172,117),FLY2
  30. 300 '
  31. 310 ' Build the swatter image
  32. 320 CLS
  33. 330 LINE (0,50)-(75,135),3,BF
  34. 340 FOR X = 5 TO 65 STEP 10
  35. 350 FOR Y = 55 TO 125 STEP 10
  36. 360 LINE (X,Y)-(X+5,Y+5),0,BF
  37. 370 NEXT Y,X
  38. 380 FOR Y = 106 TO 135
  39. 390 IF Y < 111 THEN CLR=3 ELSE CLR=0
  40. 400 DRAW "c=clr; bm0,=y; m+25,25 m+25,0 m+25,-25"
  41. 410 NEXT Y
  42. 420 LINE (30,136)-(45,199),1,BF
  43. 430 GET (0,50)-(75,199),SWAT
  44. 440 '
  45. 450 ' Draw the screen border
  46. 460 CLS
  47. 470 LINE(0,0)-(319,199),2,BF   
  48. 480 LINE(9,9)-(310,190),3,BF
  49. 490 '
  50. 500 ' Next fly appears
  51. 510 LINE(15,15)-(304,184),0,BF
  52. 520 FOR I = 1 TO 7+5*RND
  53. 530 FLY=INT(3*RND+1)
  54. 540 BUZZ=0
  55. 550 SOUND 47,0
  56. 560 SOUND 63+7*RND,999
  57. 570 WHILE BUZZ < DELAY
  58. 580 PUT(74*FLY,67),FLY1,PSET
  59. 590 PUT(74*FLY,67),FLY2,PSET
  60. 600 BUZZ=BUZZ+99
  61. 610 WEND
  62. 620 SOUND 47,0
  63. 630 PUT(74*FLY,67),FLY0,PSET
  64. 640 NEXT I
  65. 650 '
  66. 660 ' Swatters schwaapf into screen
  67. 670 FOR SWIPE = 1 TO 3
  68. 680 SOUND 999,1
  69. 690 PUT (87*SWIPE-51,35),SWAT
  70. 700 NEXT SWIPE
  71. 710 '
  72. 720 ' How well did you follow the fly?
  73. 730 K$ = INKEY$
  74. 740 IF K$ <> "" THEN 730
  75. 750 LOCATE 3,7
  76. 760 PRINT "CHECK WHICH SWATTER (1,2,3) ?
  77. 770 K$=INKEY$
  78. 780 IF K$ = "" THEN 770
  79. 790 IF K$<>"1" AND K$<>"2" AND K$<>"3" THEN 770
  80. 800 GUESS=VAL(K$)
  81. 810 LINE (87*GUESS-51,35)-(87*GUESS+24,184),0,BF
  82. 820 IF GUESS <> FLY THEN 1260
  83. 830 '
  84. 840 ' Another one bytes the dust
  85. 850 DELAY=.7370001*DELAY
  86. 860 GOSUB 1490
  87. 870 LOCATE 3,7
  88. 880 PRINT "GOT IT !!!";TAB(37);
  89. 890 SPOT=74*GUESS+9
  90. 900 FOR I = 0 TO 40
  91. 910 FREQ=99*SIN(2.1-I/17)^3+678
  92. 920 SOUND 99,0
  93. 930 SOUND FREQ,2
  94. 940 IF I MOD 3 = 0 THEN DRAW "bm=spot;,67"
  95. 950 CLR=INT(3*RND+1)
  96. 960 DX=INT(9*RND-4)
  97. 970 DY=INT(9*RND-4)
  98. 980 DRAW "c=clr; m+=dx;,=dy;"
  99. 990 NEXT I
  100. 1000 LINE (15,15)-(304,184),0,BF
  101. 1010 IF RANK=99 THEN 1620
  102. 1020 IF RANK <> 11 THEN 1100
  103. 1030 '
  104. 1040 ' You mad it past the first level of proficiency
  105. 1050 RANK=1
  106. 1060 LINE (15,15)-(304,184),0,BF
  107. 1070 LOCATE 12,4
  108. 1080 PRINT "YOU JUST MADE 'SENIOR DE-BUGGER'!!!"
  109. 1090 PLAY"MF O3 T200 L5 MS cde.cffcd.cde.cffcd..."
  110. 1100 IF RANK <> 12 THEN 1180
  111. 1110 '
  112. 1120 ' You made it past the second level of proficiency
  113. 1130 RANK=2
  114. 1140 LINE (15,15)-(304,184),0,BF
  115. 1150 LOCATE 12,4
  116. 1160 PRINT "WOW! WHAT A PROFESSIONAL! BUZZ ON!";
  117. 1170 PLAY"MF O3 T200 L5 MS ccg.ccg.efgedccffcd..."
  118. 1180 LINE (15,15)-(304,184),0,BF
  119. 1190 LOCATE 12,4
  120. 1200 PRINT "OH OH! HERE COMES A FASTER FLY ...";
  121. 1210 FOR I = 1 TO 999
  122. 1220 NEXT I
  123. 1230 GOTO 510
  124. 1240 '
  125. 1250 ' Missed it
  126. 1260 DELAY=1.47*DELAY
  127. 1270 IF DELAY > 3000 THEN DELAY=3000
  128. 1280 GOSUB 1490
  129. 1290 LINE (87*FLY-51,35)-(87*FLY+24,184),0,BF
  130. 1300 LOCATE 3,7
  131. 1310 PRINT "WHOOPS, IT GOT AWAY.";TAB(37);
  132. 1320 SOUND 57,47
  133. 1330 FOR I = 1 TO 100
  134. 1340 PUT (74*FLY,67),FLY1,PSET
  135. 1350 PUT (74*FLY,67),FLY2,PSET
  136. 1360 NEXT I
  137. 1370 LINE (15,15)-(304,184),0,BF
  138. 1380 LOCATE 12,7
  139. 1390 IF DELAY = 3000 THEN MISS$="HERE COMES ANOTHER ONE ..."
  140. 1400 IF DELAY < 3000 THEN MISS$="HERE COMES A SLOWER FLY ..."
  141. 1410 PRINT MISS$;
  142. 1420 IF SPEED < 9000 THEN RANK=1
  143. 1430 IF SPEED < 8000 THEN RANK=0
  144. 1440 FOR I = 1 TO 999
  145. 1450 NEXT I
  146. 1460 GOTO 510
  147. 1470 '
  148. 1480 ' Compute score and rank
  149. 1490 SPEED=(3000-DELAY)*10/3
  150. 1500 IF SPEED < 0 THEN SPEED=0
  151. 1510 LOCATE 25,5
  152. 1520 PRINT USING "SPEED = ####";SPEED;
  153. 1530 IF SPEED > RECORD THEN RECORD=SPEED
  154. 1540 LOCATE 25,22
  155. 1550 PRINT USING "RECORD = ####";RECORD;
  156. 1560 IF SPEED > 8000 AND RANK < 1 THEN RANK=11
  157. 1570 IF SPEED > 9000 AND RANK < 2 THEN RANK=12
  158. 1580 IF SPEED > 9999 THEN RANK=99
  159. 1590 RETURN
  160. 1600 '
  161. 1610 ' Best score possible!
  162. 1620 LOCATE 10,5
  163. 1630 PRINT "YOU DID IT!!! NO BUGS LEFT!!!"
  164. 1640 LOCATE 12,5
  165. 1650 PRINT "WELCOME TO THE S.W.A.T. TEAM !"
  166. 1660 PLAY "T169 L9 MS abcdefgacegecacgfedfdfdgdccedabbcaegfc"
  167. 1670 BGD = INT(RND * 6)
  168. 1680 PLT = INT(RND * 2)
  169. 1690 COLOR BGD,PLT
  170. 1700 GOTO 1660
  171. 1710 '
  172. 1720 ' Subroutine, reset random number sequence
  173. 1730 RANDOMIZE VAL(MID$(TIME$,4,2) +RIGHT$(TIME$,2))
  174. 1740 RETURN
  175. 0
  176. 1710 '
  177. 1720 ' Subroutine, reset random number sequence
  178. 1