10 'Save"MoonLand.gmb" 20 'Save"MoonLand.bs",a 30 REM*--------* << Rodionov Software >> 40 REM| LANDER | 50 REM*--------* 60 CLS:KEYOFF:DEFINTA-Z:COLOR15,1,1:BEEP:ONSTOPGOSUB1090:STOPON 70 GOSUB930'bg music 80 SCREEN2,0 90 OPEN"grp:"AS1 100 Z!=RND(-15) 110 GOSUB140 120 GOTO360 130 REM--Lod sprts 140 RESTORE230 150 FORSN=1TO12 160 S$="" 170 FORI=1TO8'byte sprt 180 READB:S$=S$+CHR$(B) 190 NEXTI 200 SPRITE$(SN)=S$ 210 NEXTSN 220 RETURN 230 DATA146,0,0,0,0,0,0,0 240 DATA146,146,0,0,0,0,0,0 250 DATA146,146,146,0,0,0,0,0 260 DATA146,146,146,146,0,0,0,0 270 DATA146,146,146,146,146,0,0,0 280 DATA146,146,146,146,146,146,0,0 290 DATA146,146,146,146,146,146,146,0 300 DATA146,146,146,146,146,146,146,146 310 DATA16,56,56,56,56,124,214,146 320 DATA36,136,82,136,82,186,254,124 330 DATA0,0,48,124,126,255,255,255 340 DATA255,255,255,255,255,255,255,255 350 REM--Draw pict 360 CIRCLE(128,410),250,,1,2.14 370 RESTORE390 380 READX,Y,R:IFX=0GOTO390ELSECIRCLE(X,Y),R,,,,.9:GOTO380 390 DATA22,192,4,40,187,8,55,175,4,70,185,7,90,170,6,110,178,7,113,165,3,130,190,9,145,168,6,170,178,8,195,178,6,210,185,3,230,192,6,0,0,0 400 PAINT(220,191) 410 FORI=1TO80 420 IFI=40THENGOSUB930 430 PSET(RND(1)*255,RND(1)*170):NEXT 440 CIRCLE(40,70),20,5:PAINTSTEP(0,0),5 450 LINE(238,18)-(185,10),1,BF:PRINT#1," Fuel ":LINE(231,161)-(190,19),1,BF 460 LINE(231,161)-(190,19),15,B:LINE(230,160)-(222,20),7,BF 470 FORI=0TO120STEP20:PRESET(195,151-I):PRINT#1,RIGHT$(" "+STR$(I),3):NEXT 480 REM--Parmset 490 LINE(255,191)-(0,183),1,BF:PRINT#1," (Numbers 1-4 is gravity mode)" 500 A$="1":GOSUB1020 510 X=120:YS=10:F0=120 520 PUTSPRITE1,(X,YS),10,9 530 MS=0:MS$=" Hit Space when you are ready!":GOSUB900 540 X=120:YS=10 550 S=0'speed 560 DS=4:ONINTERVAL=10GOSUB890 570 T=0'time 580 OK=0'not land 590 FE=0'fuelend=FALSE 600 TR=0'thrust 610 A$=INPUT$(1) 620 IFA$>="0"ANDA$<="9"THENGOSUB1020:GOTO610 630 IFA$=CHR$(27) THEN:_SYSTEM 640 IFA$<>" "THEN610ELSEMS=0:MS$=" Use UP Arrow for fuel feed":GOSUB900 650 BEEP:GOSUB1000:GOSUB910:INTERVALON 660 REM--M.loop 670 DY=S/SE 680 YS=YS+DY:YF=YS+9 690 IFYS>-32THENPUTSPRITE1,(X,YS),10,9:PUTSPRITE2,(X,YF),15,TR 700 IFFEGOTO780 710 IFFU<0THENFU=0:IC=9 720 PUTSPRITE3,(222,150-FU),IC,12 730 IFFU=0THENFE=-1:TR=0:MS=7:MS$=" Out of fuel!":BEEP:PLAY"t255v11o7l64c":GOSUB900:GOTO780 740 ST=STICK(0) 750 IFST=1ANDTR<8THENTR=TR+1:GOTO780 760 IFST=0ANDTR>0THENTR=TR-1:GOTO780 770 IFST=5THENTR=0 780 IFYS<151GOTO670 790 PUTSPRITE2,,,0 800 INTERVALOFF 810 IFDY>MYGOTO840'crsh! 820 PUTSPRITE1,(X,151),10,9 830 OK=1:GOSUB920:MS=1:MS$=" Well done! Once again?":GOSUB940:GOSUB900:GOTO540 840 PUTSPRITE1,(X,152),6,10:PLAY"v15l64n1":GOSUB930 850 FORI=1TO90:PUTSPRITE1,,10,11:NEXT 860 MS=3:MS$=" It was suicide. Retry?":GOSUB940:GOSUB900:GOTO540 870 GOTO 870 880 REM--Util sbrs 890 T=T+1:S=S+DS-TR:FU=FU-TR:RETURN'===timer 900 LINE(255,8)-(0,0),6,BF:PSET(2,1),6:PRINT#1,SPC(MS)+MS$;:RETURN'===txt line 910 FU=F0:IC=12:PUTSPRITE3,(222,150-FU),IC,12:RETURN'=== new fuel 920 PLAY"t120v11o4l16cego5cco4go5cc","t120v11o4l16ego5ceecee","t120v11o3l16go4ceggegg":RETURN'===Cmus 930 PLAY"l8t255v10o5ccccrcro5dreeeerere-rerarara-raaaa","l8t255v10o2aaaarereraaaarererararereraaaa":RETURN'===Fmus 940 LINE(100,43)-(2,10),1,BF 950 LINE(100,43)-(2,10),15,B 960 PRESET(5,13):PRINT#1,USING"Time #.#";(T/6) 970 PRESET(5,23):PRINT#1,USING"FuelUse ###";F0-FU 980 PRESET(5,33):PRINT#1,USING"Score ###";OK*100000!/(T*(F0-FU)+1) 990 RETURN'===Score 1000 LINE(100,43)-(2,10),1,BF:RETURN'===Ers score 1010 REM--Conditn 1020 IFA$="1"THENSE=4:MY=2:F0=120:GOTO1070 1030 IFA$="2"THENSE=3:MY=3:F0=120:GOTO1070 1040 IFA$="3"THENSE=2:MY=4:F0=120:GOTO1070 1050 IFA$="4"THENSE=1:MY=5:F0=120:GOTO1070 1060 GOTO1080 1070 LINE(66,160)-(16,148),1,BF:LINE(66,160)-(16,148),15,B:PRESETSTEP(3,3):PRINT#1,"Mode "+A$ 1080 T=0:OK=0:GOSUB910:GOSUB1000:GOSUB940:RETURN 1090 SCREEN0:COLOR15,4,4:KEYON:END