110  PRINT
200  PRINT "WELCOME TO THE PUC SCHOOL FOR BUDDING ASTRONAUTS!"
240  PRINT
300  PRINT "YOU ARE AT THE CONTROLS OF A ROCKET LANDING VEHICLE."
320  PRINT "INITIALLY YOU ARE A GIVEN DISTANCE ABOVE THE SURFACE ";
330  PRINT "MOVING"
335  PRINT "DOWNWARD (VELOCITY IS NEGATIVE). YOU CHOOSE THE AMOUNT ";
336  PRINT "OF FUEL"
350  PRINT "TO BE BURNED DURING THE NEXT ONE SECOND OF TIME."
400  PRINT
410  PRINT "   IF YOU BURN ZERO, THEN YOU WILL FALL FASTER BECAUSE";
420  PRINT " OF GRAVITY."
430  PRINT "   IF YOU BURN EXACTLY THAT REQUIRED TO OVERCOME";
440  PRINT " GRAVITY, THEN"
445  PRINT "     YOUR VELOCITY WILL BE CONSTANT."
450  PRINT "   IF YOU BURN MORE, THEN YOU WILL SLOW DOWN OR EVEN";
460  PRINT " START TO MOVE"
470  PRINT "     UPWARD (VELOCITY IS POSITIVE)!"
475  PRINT
480  PRINT "THE IDEA IS TO GET THE LANDER DOWN TO THE SURFACE,"
490  PRINT "LANDING WITH AS LITTLE VELOCITY AS POSSIBLE. THERE IS"
500  PRINT "MORE THAN ENOUGH FUEL, BUT BE CAREFUL NOT TO WASTE IT!"
600  PRINT
700  PRINT "LANDING ON THE MOON IS EASIER, TRY THAT FIRST."
720  PRINT
730  PRINT
1000  PRINT "GOOD LUCK AND HAPPY LANDINGS!"
1006  LET X0=V0=0
1007  PRINT
1010  PRINT
1030  PRINT "LOCATION:            1)MOON      2)EARTH        ";
1041  INPUT A9
1043  LET K=0
1046  IF A9=1 THEN 1060
1047  LET K=1
1049  IF A9=2 THEN 1060
1050  PRINT "THAT LOCATION IS NOT RECOGNIZED."
1055  GOTO 1030
1060  LET G=5+27*K
1070  LET M=30+60*K
1075  IF X0>0 THEN 1100
1080  LET X=X0=500+1500*K
1090  LET V=V0=-50-100*K
1100  PRINT "INITIAL CONDITIONS:  1)STANDARD  2)OLD  3)NEW   ";
1110  INPUT A9
1120  IF A9#1 THEN 1150
1130  LET X=500+1500*K
1140  LET V=-50-100*K
1145  GOTO 1200
1150  IF A9=3 THEN 1170
1151  IF A9=2 THEN 1158
1152  FOR A8=0 TO A9
1153  LET A7=RND(0)
1154  NEXT A8
1155  GOTO 1100
1158  LET X=X0
1160  LET V=V0
1165  GOTO 1200
1170  LET X=INT(RND(0)*(100+K*100))*10+100
1180  LET V=-INT(RND(0)*(10+K*10))*5
1190  IF V*V>2*(M-G)*X THEN 1180
1200  LET X0=X
1210  LET V0=V
1290  LET F=INT(SQR(M*(V^2+2*G*X)/(M-G))*.13+.5)*10
1300  PRINT
1302  PRINT "INITIAL HEIGHT:     ";X;"FEET"
1303  PRINT "INITIAL VELOCITY:   ";V;"FEET/SEC"
1305  PRINT "TOTAL FUEL SUPPLY:  ";F;"UNITS"
1307  PRINT "MAXIMUM BURN:       ";M;"UNITS/SEC"
1308  PRINT "AMOUNT OF BURN TO CANCEL GRAVITY:  ";G;"UNITS/SEC"
1320  PRINT
1330  PRINT
1340  PRINT " TIME"," HEIGHT","VELOCITY"," FUEL","BURN"
1350  PRINT
2000  LET T=-1
2010  LET T=T+1
2020  PRINT T,X,V,F,
2030  INPUT B
2040  LET B1=ABS(B)
2050  IF B1 <= M THEN 2080
2060  PRINT " ","MAX BURN IS ";M;"BURN ";
2070  GOTO 2030
2080  LET T9=T8=2
2090  IF B1=0 THEN 2110
2100  LET T9=F/B1
2110  LET A=B-G
2120  LET R=V*V-2*A*X
2140  IF R<0 THEN 2200
2150  IF A=0 THEN 2180
2160  LET T8=-(V+SQR(R))/A
2170  GOTO 2200
2180  IF V >= 0 THEN 2200
2190  LET T8=-X/V
2200  IF (T8>0 AND T8 <= 1) OR T9 <= 1 THEN 2300
2210  LET X=X+V+A/2
2220  LET V=V+A
2230  LET F=F-B1
2235  IF X>1.00000E-04 THEN 2010
2240  LET T=T+1
2245  GOTO 2630
2300  IF T8>0 AND T8 <= T9 THEN 2600
2310  PRINT T+T9,"OUT OF FUEL"
2320  LET F=B1=0
2330  LET X=X+V*T9+A*T9^2/2
2340  LET V=V+A*T9
2350  LET A=-G
2360  LET T8=(V+SQR(V*V-2*A*X))/G
2370  IF T8<1-T9 THEN 2500
2380  LET X=X+V*(1-T9)+A*(1-T9)^2/2
2390  LET V=V+A*(1-T9)
2400  LET T=T+1
2410  PRINT T,X,V
2420  LET T8=(V+SQR(V^2-2*A*X))/G
2430  IF T8 <= 1 THEN 2600
2440  LET X=X+V+A/2
2450  LET V=V+A
2460  GOTO 2400
2500  LET T=T+T9
2600  LET F=F-B1*T8
2610  LET T=T+T8
2620  LET V=V+A*T8
2630  PRINT T,0,V,F
2640  PRINT
2650  PRINT
2700  IF V<-1 THEN 2800
2710  LET R9=INT(RND(0)*5+1)
2712  IF R9=1 THEN 2720
2713  IF R9=2 THEN 2730
2714  IF R9=3 THEN 2740
2715  IF R9=4 THEN 2750
2716  IF R9=5 THEN 2760
2720  PRINT "YOU ARE NOW A QUALIFIED ASTRONAUT."
2725  GOTO 1007
2730  PRINT "AS GENTLE AS A KITTEN'S PURR!!"
2735  GOTO 1007
2740  PRINT "A BUTTERFLY COULDN'T HAVE DONE BETTER!"
2745  GOTO 1007
2750  PRINT "AS SOFT AS A SNOWFLAKE!"
2755  GOTO 1007
2760  PRINT "MR. SPOCK WOULD BE PROUD OF YOU!!!"
2765  GOTO 1007
2800  IF V<-5 THEN 2900
2810  LET R9=INT(RND(0)*4+1)
2812  IF R9=1 THEN 2820
2813  IF R9=2 THEN 2830
2814  IF R9=3 THEN 2840
2815  IF R9=4 THEN 2850
2820  PRINT "A BIT ROUGH, BUT YOU ARE STILL IN ONE PIECE!"
2825  GOTO 1007
2830  PRINT "IF YOU HAD BEEN DRIVING A 1970 LTD, THAT WOULD";
2831  PRINT " HAVE COST YOU $500!"
2835  GOTO 1007
2840  PRINT "ANY FASTER AND YOU WOULD HAVE BOUNCED!"
2845  GOTO 1007
2850  PRINT "YOU HAD BETTER CHECK YOU LANDING GEAR!!"
2855  GOTO 1007
2900  IF V<-10 THEN 3000
2910  LET R9=INT(RND(0)*5+1)
2912  IF R9=1 THEN 2920
2913  IF R9=2 THEN 2930
2914  IF R9=3 THEN 2940
2915  IF R9=4 THEN 2950
2916  IF R9=5 THEN 2960
2920  PRINT "IS YOUR MEDICAL INSURANCE PAID UP??"
2925  GOTO 1007
2930  PRINT "YOU GOT DOWN, BUT YOU WILL NEVER BE AN ASTRONAUT!"
2935  GOTO 1007
2940  PRINT "NEIL ARMSTRONG DID IT THE FIRST TIME!!"
2945  GOTO 1007
2950  PRINT "THE BEST LAID SCHEMES OF MICE AND MEN,"
2951  PRINT "  OFT' GO ASTRAY."
2955  GOTO 1007
2960  PRINT "HAVE YOU EVER THOUGHT OF A DIFFERENT LINE OF WORK??"
2965  GOTO 1007
3000  LET R9=INT(RND(0)*3+1)
3002  IF R9=1 THEN 3010
3003  IF R9=2 THEN 3020
3004  IF R9=3 THEN 3030
3010  PRINT "YOUR NEXT OF KIN WILL BE NOTIFIED."
3015  GOTO 1007
3020  PRINT "YOU JUST CREAMED A 29 MEGABUCK LANDER!"
3025  GOTO 1007
3030  PRINT "AREN'T YOU GLAD THIS IS ONLY A COMPUTER SIMULATION!!"
3035  GOTO 1007
9999  END
