10 REM *** CRASH - A MODIFIED VERSION OF LANDER (A CONTRIBUTED PROGRAM) 12 REM *** MODIFIED BY PEOPLE'S COMPUTER COMPANY, MENLO PARK, CA 100 DIM A$[72] 210 PRINT 220 PRINT "DO YOU WANT INSTRUCTIONS (YES OR NO)"; 230 INPUT A$[1,1] 240 PRINT 250 IF A$[1,1]="N" THEN 1000 300 PRINT "CONGRATULATIONS! YOU ARE AT THE CONTROLS OF A SPACE MODULE." 305 PRINT "THE OBJECT IS TO LAND ON THE SURFACE WITH AS SMALL A VELOCITY" 310 PRINT "AS POSSIBLE." 315 PRINT 320 PRINT "YOU START AT A GIVEN HEIGHT ABOVE THE SURFACE WITH YOUR MODULE" 325 PRINT "MOVING TOWARD THE SURFACE." 330 PRINT 335 PRINT "YOU CHOOSE THE AMOUNT OF FUEL TO BE BURNED DURING THE" 340 PRINT "NEXT ONE SECOND." 345 PRINT 350 PRINT " IF YOU BURN ZERO, YOUR SPEED INCREASES DUE TO GRAVITY." 355 PRINT 360 PRINT " IF YOU BURN EXACTLY THE AMOUNT REQUIRED TO OVERCOME GRAVITY," 365 PRINT " YOUR VELOCITY REMAINS CONSTANT." 370 PRINT 375 PRINT " IF YOU BURN MORE, YOUR SPEED DECREASES BUT BURNING TOO MUCH" 380 PRINT " MAY BEGIN TO MOVE YOU UPWARD (YOUR VELOCITY BECOMES POSITIVE)" 385 PRINT 390 PRINT "THERE IS MORE THAN ENOUGH FUEL, BUT BE CAREFUL NOT TO WASTE IT!" 395 PRINT 400 PRINT "YOU MAY TRY TO LAND ON THE MOON, ON THE EARTH, OR ON PERSEPHONE." 405 PRINT "LANDING ON THE MOON IS EASIEST, SO TRY THAT FIRST." 410 PRINT "PERSEPHONE IS AN UNKNOWN PLANET SO YOU WILL HAVE TO SPECIFY" 415 PRINT "ALL THE INITIAL CONDITIONS (HEIGHT, VELOCITY, MAXIMUM BURN," 420 PRINT "AND BURN TO CANCEL GRAVITY.)" 425 PRINT 1000 PRINT "GOOD LUCK AND HAPPY LANDINGS!" 1005 REM 1006 LET X0=V0=0 1007 PRINT 1010 PRINT 1030 PRINT "LOCATION: MOON, EARTH, OR PERSEPHONE"; 1040 INPUT A$ 1042 PRINT 1043 LET K=0 1045 IF A$[1,1]="M" THEN 1060 1047 LET K=1 1048 IF A$[1,1]="E" THEN 1060 1049 IF A$[1,1]="P" THEN 4000 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: STANDARD OR RANDOM"; 1110 INPUT A$ 1120 IF A$[1,1]#"S" THEN 1170 1130 LET X=500+1500*K 1140 LET V=-50-100*K 1145 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>.0001 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 GOTO INT(RND(0)*5+1) OF 2720,2730,2740,2750,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 GOTO INT(RND(0)*4+1) OF 2820,2830,2840,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 HAVE COST"; 2831 PRINT " 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 GOTO INT(RND(0)*5+1) OF 2920,2930,2940,2950,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 GOTO INT(RND(0)*3+1) OF 3010,3020,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 4000 REM *** SET UP INITIAL CONDITONS FOR 'PERSEPHONE' 4010 PRINT 4020 PRINT "INITIAL HEIGHT (FEET)"; 4030 INPUT X 4040 PRINT "INITIAL VELOCITY (FEET/SEC) (USUALLY NEGATIVE)"; 4050 INPUT V 4060 PRINT "TOTAL FUEL SUPPLY (UNITS)"; 4070 INPUT F 4080 PRINT "MAXIMUM BURN (UNITS/SEC)"; 4090 INPUT M 4100 PRINT "AMOUNT OF BURN TO CANCEL GRAVITY (UNITS/SEC)"; 4110 INPUT G 4120 GOTO 1320 9999 END