home *** CD-ROM | disk | FTP | other *** search
/ RBBS in a Box Volume 1 #3.1 / RBBSIABOX31.cdr / apit / alien.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1986-04-13  |  5.7 KB  |  131 lines

  1. 10  REM ALIEN ATTACK
  2. 20  REM WRITTEN AND DESIGNED BY BRAD AND BRIAN SACHAR
  3. 30  REM PHONE = 301 - 871 - 8737
  4. 40  KEY OFF :WIDTH 80:COLOR 7:GOSUB 1030
  5. 50  CLEAR:DEFINT A-Z
  6. 60  Y$=CHR$(201)+CHR$(216)+CHR$(187):A=22:B=38:A1=23:B1=38:X=VAL(RIGHT$(TIME$,2))+VAL(MID$(TIME$,4,2)):RANDOMIZE X:BAS=5:TR=12:FD=5
  7. 70  MOVE$=CHR$(249)+":::>"+STRING$(2,205)+">":GO=15
  8. 75  DEF SEG = &H40:POKE &H17,&H20
  9. 80  CLS:INPUT "ENTER LEVEL OF DIFFICULTY 0 (HARDEST) - 3 (EASIEST)";LEVEL
  10. 90  IF LEVEL >1 THEN SPEED=1 ELSE SPEED=0
  11. 100  IF LEVEL>3 THEN LEVEL=3
  12. 110  Y=INT(RND*79)+1:X=1
  13. 120  Y1=INT(RND*79)+1:X1=25
  14. 130  Q=1
  15. 140  Z=INT(RND*79)+1:W=1
  16. 150  Z1=INT(RND*79)+1:W1=25
  17. 160  H=1
  18. 170  E=INT(RND*79)+1:F=1
  19. 180  E1=INT(RND*79)+1:F1=25
  20. 190  C=1
  21. 200  PP=X:SS=W:DD=F
  22. 210  PP1=PP:SS1=SS:DD1=DD:WW1=1:XX1=1:FF1=1
  23. 220  IF GT=0 THEN CLS
  24. 230  IF GT=0 THEN GOSUB 700
  25. 240  X$(1)=CHR$(157):X$(2)=CHR$(25):X$(3)=CHR$(18)
  26. 250  IF H3=1 THEN 320 ELSE PP=PP+Q:IF PP=>X1 THEN PL=1:GOTO 320
  27. 260  XX=(((PP-X)*(Y-Y1))/(X-X1))+Y
  28. 270  IF PP=24 AND XX=80 THEN POKE 24*80*2-2,32:PP=X1-1:GOTO 320
  29. 280  LOCATE PP1,XX1:PRINT " ";
  30. 290  IF SCREEN(PP,XX)=219 THEN BAS=BAS-1:LOCATE PP,XX-5:PRINT "           ";:FOR KL=900 TO 2900 STEP 43:SOUND KL,0.01:NEXT :SOUND 37,0 ELSE IF SCREEN(PP,XX)=201 OR SCREEN(PP,XX)=216 OR SCREEN (PP,XX)=187 THEN LOCATE 5,1:PRINT "YOU HAVE BEEN HIT":GOTO 980
  31. 300  LOCATE PP,XX:PRINT X$(1);:PP1=PP:XX1=XX
  32. 310  SOUND 100,0.1
  33. 320  IF J3=1 THEN 390 ELSE SS=SS+H:IF SS>=W1 THEN PL=1:GOTO 390
  34. 330  WW=(((SS-W)*(Z-Z1))/(W-W1))+Z
  35. 340  IF SS=24 AND WW=80 THEN POKE 24*80*2-2,32:SS=W1-1:GOTO 390
  36. 350  LOCATE SS1,WW1:PRINT " ";
  37. 360  IF SCREEN(SS,WW)=219 THEN BAS=BAS-1:LOCATE SS,WW-5:PRINT "           ";:FOR KL=900 TO 2900 STEP 43:SOUND KL,0.01:NEXT:SOUND 37,0 ELSE IF SCREEN(SS,WW)=201 OR SCREEN(SS,WW)=216 OR SCREEN(SS,WW)=187 THEN LOCATE 5,1:PRINT "YOU HAVE BEEN HIT":GOTO 980
  38. 370  COLOR 11:LOCATE SS,WW:PRINT X$(2);:SS1=SS:WW1=WW:COLOR 7
  39. 380  SOUND 100,0.1
  40. 390  IF K3=1 THEN 470 ELSE DD=DD+C:IF DD=>F1 THEN PL=1:GOTO 470
  41. 400  FF=(((DD-F)*(E-E1))/(F-F1))+E
  42. 410  REM
  43. 420  LOCATE DD1,FF1:PRINT " ";
  44. 430  IF SCREEN(DD,FF)=219 THEN BAS=BAS-1:LOCATE DD,FF-5:PRINT "           ";:FOR KL=900 TO 2900 STEP 43:SOUND KL,0.01:NEXT:SOUND 37,0 ELSE IF SCREEN(DD,FF)=201 OR SCREEN(DD,FF)=216 OR SCREEN(DD,FF)=187 THEN LOCATE 5,1:PRINT "YOU HAVE BEEN HIT":GOTO 980
  45. 440  COLOR 0,7:LOCATE DD,FF:PRINT X$(3);:DD1=DD:FF1=FF:COLOR 7
  46. 450  SOUND 100,0.1
  47. 460  IF BAS=0 THEN LOCATE 20,1:PRINT "YOUR BASES WERE DESTROYED !":END ELSE GOTO 480
  48. 470  IF (K3=1 AND H3=1 AND J3=1) OR PL=1 THEN LOCATE PP1,XX1:PRINT " ";:LOCATE SS1,WW1:PRINT " ";:LOCATE DD1,FF1:PRINT " ";:GT=1:J3=0:K3=0:H3=0:PL=0:GOTO 110
  49. 480  A$=INKEY$
  50. 490  IF A$="8" AND EW=0 THEN EW=1:GOTO 580
  51. 500  IF A$="4" THEN A1=A:B1=B+2:B=B-1:GOTO 530
  52. 510  IF A$="6" THEN A1=A:B1=B:B=B+1:GOTO 530
  53. 520  GOTO 570
  54. 530  IF B<3 THEN B=3
  55. 540  IF B>77 THEN B=77
  56. 550  LOCATE A,B:PRINT Y$;
  57. 560  LOCATE A1,B1:PRINT " ";:A1=1:B1=1
  58. 570  IF EW=1 THEN GOTO 600 ELSE GOTO 690
  59. 580  IF EW=0 THEN 500
  60. 590  DW=B+1:SD=22:SD1=SD-1
  61. 600  REM
  62. 610  SD=SD-1:IF SD<PP OR SD<SS OR SD<DD THEN LOCATE SD1,DW:PRINT " ";:EW=0:GOTO 250
  63. 620  LOCATE SD1,DW:PRINT " ";:IF SCREEN(SD,DW)=25 THEN J3=1:SC=SC+2+LEVEL:LOCATE 25,9:PRINT SC;:PLAY"L16AG":MOVE=2+LEVEL
  64. 630  IF SCREEN(SD,DW)=157 THEN H3=1:SC=SC+1+LEVEL:LOCATE 25,9:PRINT SC;:PLAY"L16AG":MOVE=1+LEVEL
  65. 640  IF SCREEN(SD,DW)=18 THEN K3=1:SC=SC+3+LEVEL:LOCATE 25,9:PRINT SC;:PLAY"L16AG":MOVE=3+LEVEL
  66. 650  IF SC=>FD THEN TR=TR-2:FD=FD+5+SPEED:IF TR=0 THEN TR=2
  67. 660  LOCATE SD,DW:PRINT CHR$(179);:SD1=SD:GO=GO+MOVE:IF GO>=52 THEN GO=52
  68. 670  LOCATE 25,GO:PRINT MOVE$;:LOCATE 25,GO-MOVE:PRINT STRING$(MOVE," ");:MOVE=0:LOCATE 25,9:PRINT SC;
  69. 680  IF GO>=52 THEN PLAY"L16CCCGEG":GOTO 720
  70. 690  IF SX<TR THEN SX=SX+1:GOTO 480 ELSE SX=1:GOTO 250
  71. 700  LOCATE 24,1:PRINT "     ";STRING$(6,219);SPC(10);STRING$(6,219);SPC(11);STRING$(6,219);SPC(9);STRING$(6,219);SPC(8);STRING$(6,219);
  72. 705  LOCATE 25,2:PRINT "SCORE = ";:LOCATE 25,60:PRINT ">>>>DOCKING BASE";:LOCATE 25,GO:PRINT MOVE$;
  73. 710  LOCATE A,B:PRINT Y$;:RETURN
  74. 720  FOR I=1 TO 3000:NEXT
  75. 730  LOCATE 10,13:PRINT "YOU HAVE FINISHED THE HARD PART BUT YOU STILL MUST LAND ON EARTH (GOOD LUCK!).":FOR G=1 TO 3000:NEXT G
  76. 740  CLS:S=34:A=2:B=18:B1=B:T=24:E=2
  77. 750  LOCATE 23,S:PRINT "     //"+STRING$(4,196)+"//     ";
  78. 760  LOCATE 24,S:PRINT "    /  /  /  /    ";
  79. 770  LOCATE 25,S:PRINT "   /    //    /   ";
  80. 775  IF A>=25 THEN FOR I=1 TO 275:SOUND INT(RND*90+37),0.01:NEXT:SOUND 37,0:LOCATE 5:PRINT "CRASH LANDING ... YOU ARE DEAD. IN MEMORY OF YOU ":PRINT "THE EARTH HAS A DAY OF TOTAL SILENCE.";:GOTO 1020
  81. 780  LOCATE A,B:B$=CHR$(240)+CHR$(210)+CHR$(240):PRINT B$;:LOCATE 1,70:PRINT "TIME ="INT(T):SOUND 100+T,1
  82. 790  A$=INKEY$
  83. 800  IF A$="4" THEN B1=B+2:B=B-1:GOTO 870
  84. 810  IF A$="6" THEN B1=B:B=B+1:GOTO 870
  85. 820  IF A$="8" THEN 930
  86. 830  IF A$="2" THEN 950
  87. 840  IF B=71 THEN B=70:B1=B ELSE IF B=10 THEN B=9:B1=B
  88. 850  IF SCREEN (A+1,B+1)=196 OR SCREEN(A+1,B-1)=196 OR SCREEN(A+1,B)=196 THEN 920
  89. 860  REM
  90. 870  LOCATE A-1,B-1:PRINT "     ";:LOCATE A,B1:PRINT " ";:LOCATE A,B:PRINT B$;
  91. 880  X=INT(RND*4-2):LOCATE 1,1
  92. 890  T=T-0.25:IF T=0 THEN 970 ELSE IF T/E=INT(T/E) THEN A=A+1
  93. 900  IF T/2=INT(T/2) THEN S=S+X
  94. 910  GOTO 750
  95. 920  LOCATE A-1,B-1:PRINT "     ";:LOCATE A,B1:PRINT " ";:LOCATE 10,13:PRINT "YOU LANDED WITH EASE..., YOU HAVE SAVED THE EARTH ..... EARTH IS GRATEFUL!!";:GOTO 1020
  96. 930  E=E+0.5:IF E=2 THEN E=1.5
  97. 940  GOTO 840
  98. 950  E=E-0.5:IF E=0 THEN E=0.5
  99. 960  GOTO 840
  100. 970  LOCATE 5:PRINT "YOU SAVED THE EARTH BUT YOU RAN OUT OF OXYGEN, YOU DIED!! THE EARTH WILL NEVER  FORGET YOU...":GOTO 1020
  101. 980  IF SC>10 AND SC<25 THEN LOCATE 9:PRINT "EARTH WAS GLAD YOU TRIED, BUT YOU  FAILED YOUR MISSION , TRY AGAIN!":END
  102. 990  IF SC>24 AND SC<45 THEN LOCATE 9:PRINT "EARTH WAS DESTROYED BY THE ALIENS BUT YOU ALMOST SUCCEEDED!!":END
  103. 1000  IF SC>44 AND SC<55 THEN LOCATE 9:PRINT "EARTH WAS ALMOST SAVED BY YOU. EVEN THOUGH DID NOT SAVE HER ... YOU WILL SUCCEED NEXT TIME !!":END
  104. 1010  PRINT "YOU NEED SOME TRAINING, BETTER TRY AGAIN":END
  105. 1020  FOR K=1 TO 7500:NEXT :CLS:LOCATE 12,20:PRINT "YOUR SCORE WAS";SC
  106. 1030  CLS:INPUT "DO YOU WANT DIRECTIONS? Y/N  ";A$
  107. 1040  IF A$<>"Y" AND A$<>"y" THEN RETURN
  108. 1050  CLS
  109. 1060  PRINT "THE  ALIENS  ARE  ATTACKING  THE EARTH.  ";
  110. 1070  PRINT "YOU USE THE CURSOR KEYS TO  MOVE  YOUR"
  111. 1080  PRINT "SHIP LEFT AND RIGHT TO DEFEND YOUR BASES  "
  112. 1090  PRINT "YOU FIRE BY PRESSING THE `UP'KEY   "
  113. 1100  PRINT
  114. 1110  PRINT "THE ";:COLOR 0,7:PRINT CHR$(18);:COLOR 7,0:PRINT " IS WORTH THE MOST POINTS"
  115. 1120  PRINT "THE ";:PRINT CHR$(25);:PRINT " IS WORTH THE NEXT AMOUNT OF POINTS"
  116. 1130  PRINT "THE ";:PRINT CHR$(157);:PRINT " IS WORTH THE LEAST POINTS":PRINT
  117. 1140  PRINT "THE OBJECT OF THE GAME IS TO GET THE SHIP AT THE BOTTOM OF THE"
  118. 1150  PRINT "SCREEN TO THE DOCKING BASE ACROSS THE BOTTOM OF THE SCREEN"
  119. 1160  PRINT "BY HITTING THE ALIENS COMING TO DESTROY YOUR BASES.":PRINT
  120. 1170  PRINT "IF YOU SUCCEED IN DOING THIS, YOU  WILL"
  121. 1180  PRINT "HAVE TO LAND YOUR SHIP ON EARTH.  TO DO"
  122. 1190  PRINT "THIS YOU MUST USE THE CURSOR KEYS AGAIN"
  123. 1200  PRINT
  124. 1210  PRINT "THE UP KEY SLOWS DOWN THE SHIP  ";
  125. 1220  PRINT "THE DOWN KEY SPEEDS UP THE SHIP"
  126. 1230  PRINT "THE LEFT AND RIGHT KEYS MANEUVER THE SHIP"
  127. 1240  PRINT "MANEUVER THE SHIP ONTO EARTH BEFORE  YOUR"
  128. 1250  PRINT "TIME RUNS OUT!!":PRINT :COLOR 31:PRINT "HAVE FUN !!!!!!":COLOR 7
  129. 1270  INPUT "PRESS RETURN TO CONTINUE";A
  130. 1280  COLOR 7:RETURN
  131.