home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
cpmug
/
cpmug013.ark
/
ROCKET.BAS
< prev
next >
Wrap
BASIC Source File
|
1984-04-29
|
3KB
|
85 lines
5 FOR I = 1 TO 10:PRINT:NEXT I
10 PRINT TAB(18);"ROCKET 1 03:30 PM 4 MAY 1976 "
70 PRINT TAB(18);" LUNAR LANDING SIMULATION "
80 PRINT TAB(18);" ----- ------- ---------- "
85 FOR I = 1 TO 10:PRINT:NEXT I
100 INPUT "DO YOU WANT INSTRUCTIONS (YES OR NO) ";A$
105 IF LEFT$(A$,1)="Y" THEN 120
110 IF LEFT$(A$,1)="N" THEN 390
115 PRINT "YES OR NO":GOTO 100
120 GOSUB 160
130 INPUT "DO YOU UNDERSTAND THE INSTRUCTIONS ";A$
140 IF LEFT$(A$,1)="Y" THEN 390
145 IF LEFT$(A$,1)="N" THEN 120
150 PRINT "YES OR NO ":GOTO 130
160 PRINT
200 PRINT "YOU ARE LANDING ON THE MOON AND HAVE TAKEN OVER MANUAL"
210 PRINT "CONTROL 500 FEET ABOVE A GOOD LANDING SPOT. YOU HAVE A"
220 PRINT "DOWNWARD VELOCITY OF 50 FT/SEC. 120 UNITS OF FUEL REMAIN."
225 PRINT
230 PRINT "HERE ARE THE RULES THAT GOVERN YOUR SPACE VEHICLE:"
240 PRINT "(1) AFTER EACH SECOND, THE HEIGHT, VELOCITY, AND REMAINING"
250 PRINT " FUEL WILL BE REPORTED. "
260 PRINT "(2) AFTER THE REPORT, A '?' WILL BE TYPED. ENTER THE"
270 PRINT " NUMBER OF UNITS OF FUEL WOU WISH TO BURN DURING THE"
280 PRINT " NEXT SECOND. EACH UNIT OF FUEL WILL SLOW YOUR DESCENT"
290 PRINT " BY 1 FT/SEC. "
310 PRINT "(3) THE MAXIMUM THRUST OF YOUR ENGINE IS 30 FT/SEC/SEC OR"
320 PRINT " 30 UNITS OF FUEL PER SECOND. "
330 PRINT "(4) WHEN YOU CONTACT THE LUNAR SURFACE, YOUR DESENT ENGINE"
340 PRINT " WILL AUTOMATICALLY CUT OFF AND YOU WILL BE GIVEN A "
350 PRINT " REPORT OF YOUR LANDING SPEED AND REMAINING FUEL."
360 PRINT "(5) IF YOU RUN OUT OF FUEL, THE '?' WILL NO LONGER APPEAR,"
370 PRINT " BUT YOUR SECOND BY SECOND REPORT WILL CONTINUE UNTIL"
380 PRINT " YOU CONTACT THE LUNAR SURFACE ":PRINT
385 RETURN
390 PRINT "BEGINNING LANDING PROCEDURE.....":PRINT
410 PRINT "G O O D L U C K ! ! ! !"
420 PRINT:PRINT
440 PRINT "SEC FEET SPEED FUEL PLOT OF DISTANCE"
450 PRINT
455 T=0:H=500:V=50:F=120
490 PRINT T;TAB(4);H;TAB(12);V;TAB(20);F;TAB(29);"I";TAB(H/12+29);"*"
500 INPUT "UNITS OF FUEL TO USE ";B
510 IF B<0 THEN 650
520 IF B>30 THEN 525
524 GOTO 530
525 PRINT "MAXIMUM FUEL USAGE IS 30":GOTO 500
530 IF B>F THEN B=F
540 V1=V-B+5
560 F=F-B
570 H=H-.5*(V+V1)
580 IF H<=0 THEN 670
590 T=T+1
600 V=V1
610 IF F>0 THEN 490
615 IF B=0 THEN 640
620 PRINT "*** OUT OF FUEL ***"
640 PRINT T;TAB(4);H;TAB(12);V;TAB(20);F;TAB(29);"I";TAB(H/12+29);"*"
650 B=0
660 GOTO 540
670 PRINT "*** CONTACT ***"
680 H=H+.5*(V+V1)
690 IF B=5 THEN 720
700 D=(-V+SQR(V*V+H*(10-2*B)))/(5-B)
710 GOTO 730
720 D=H/V
730 V1=V+(5-B)*D
760 PRINT "TOUCHDOWN AT ";T+D;"SECONDS."
770 PRINT "LANDING VELOCITY = ";V1;"FT/SEC"
780 PRINT F;"UNITS OF FUEL REMAINING."
790 IF V1<>0 THEN 810
800 PRINT "CONGRATULATIONS!! A PERFECT LANDING!"
805 PRINT "YOUR LICENSE WILL BE RENEWED ........LATER "
810 IF ABS(V1)<2 THEN 840
820 PRINT "***** SORRY, BUT YOU BLEW IT !!!!!*****"
830 PRINT "APPROPRIATE CONDOLENCES WILL BE SENT TO YOU NEXT OF KIN."
840 PRINT:PRINT:PRINT
850 INPUT "ANOTHER MISSION";A$
870 IF LEFT$(A$,1)="N" THEN 880
875 IF LEFT$(A$,1)="Y" THEN 390
876 PRINT "YES OR NO":GOTO 850
880 PRINT:PRINT "CONTROL OUT.":PRINT
999 END