1 REM 2 REM 3 REM +++++++++++++++++++++++++++++++++ 4 REM ! Program .... LANDNING 5 REM ! Utg}va 2 82-01-10 6 REM ! av (c) Niclas Wiberg 7 REM ! Minne 16 Kbytes 8 REM ! Ins{nt av Niclas Wiberg 9 REM +++++++++++++++++++++++++++++++++ 10 REM ! Ni tycker f|rmodligen att det 11 REM ! inte g}r s} s{rskilt bra att 12 REM ! styra och bromsa med tanke p} 13 REM ! att man inte kan g|ra b}da 14 REM ! samtidigt. 15 REM ! Men det {r nog inget st|rre 16 REM ! problem att koppla in n}gon 17 REM ! "styrspak" eller ett par 18 REM ! knappar till programmet. 19 REM ! Att anv{nda en "joystick" till 20 REM ! detta tror jag {r v{ldigt 21 REM ! effektfullt. 22 REM +++++++++++++++++++++++++++++++++ 23 DIM A%(3%),L0%(3%),L1%(3%),L2%(3%),X%(15%),Y%(15%) 24 T%=12% : T1%=9% 25 ; CHR$(12%)" "; : A$="ABC80 presenterar" 26 FOR N%=1% TO LEN(A$) : ; MID$(A$,N%,1%)CHR$(127%,8%); 27 OUT 6%,137% : FOR I%=0% TO 150% : NEXT I% : OUT 6%,0% 28 FOR I%=0% TO 300% : NEXT I% 29 NEXT N% 30 ; " " : ; : ; 31 FOR N%=0% TO 2000% : NEXT N% 32 ; CHR$(23%)TAB(T%)"u`5>/4>/45 5" 33 ; CHR$(23%)TAB(T%)"7655 55 5} 5" 34 ; CHR$(23%)TAB(T%)"5%55 55 55e5" 35 ; CHR$(23%)TAB(T%)'5 55 55 55"5' 36 ; CHR$(23%)TAB(T%)"% %+/!+/!% %" 37 ; : ; 38 ; CHR$(23%)TAB(T1%)"5 `e 5 5?/4?/%?/4" 39 ; CHR$(23%)TAB(T1%)'5 6"4} 55 55 5 5' 40 ; CHR$(23%)TAB(T1%)"5 ?/55e55 5?/ ??!" 41 ; CHR$(23%)TAB(T1%)'5 5 55"55 55 5i' 42 ; CHR$(23%)TAB(T1%)"//%% %% %//!//%% %" 43 FOR N%=0% TO 3% : READ A%(N%) : NEXT N% 44 FOR N%=0% TO 200% STEP 5% : FOR I%=0% TO 3% 45 OUT 6%,A%(I%) : FOR J%=0% TO N% : NEXT J% : NEXT I% : NEXT N% : OUT 6%,0% 46 DATA 251,3,249,1 47 FOR N%=0% TO 3000% : NEXT N% 48 ; CHR$(12%)TAB(14%)"MOON LANDER" 49 ; CHR$(23%)TAB(14%)"###########" 50 ; 51 ; "Du befinner dig i en landningskapsel en" 52 ; TAB(5%)"bit ovanf|r marken p} m}nen." 53 ; 54 ; "Ditt uppdrag {r att ta dig ner p} n}gon" 55 ; TAB(3%)"av de fyra plattformar som finns." 56 ; " Du f}r olika mycket po{ng beroende p}" 57 ; "hur ""h}rt"" du landar, samt sv}righets-" 58 ; TAB(4%)"graden p} just den plattformen." 59 ; TAB(31%)CHR$(23%)"`|0" 60 ; TAB(5%)"S} h{r ser din kapsel ut :"CHR$(23%)"h/4" 61 ; TAB(31%)CHR$(23%)'! "' 62 ; " Du har en b{rraket ned}t, och en styr-" 63 ; "raket p} varje sida. Huvudraketen kan du"; 64 ; TAB(5%)"anv{nda med tre olika styrkor." 65 ; : ; : ; TAB(13%)"Tryck " : ; : ; TAB(7%)"(]ter till menyn med ""Q"")"CHR$(23%,8%); 66 GET A$ : IF A$="Q" CHAIN "MENY" ELSE IF A$<>CHR$(13%) 66 67 ; CHR$(12%)TAB(14%)"MOON LANDER" 68 ; CHR$(23%)TAB(14%)"###########" 69 ; 70 ; " Du man|vrerar kapseln enligt f|ljande:" 71 ; 72 ; " B{rraketen : L,\ och [ (L {r starkast)" 73 ; TAB(6%)"Styrraketerna : ""A"" och ""S""." 74 ; 75 ; " Obs !! Du har bara en begr{nsad m{ngd" 76 ; TAB(5%)"br{nsle. G|r inte slut p} den!" 77 ; : ; " Du f}r dock mer br{nsle i bonus om du" 78 ; TAB(10%)"g|r en bra landning." 79 ; : ; TAB(6%)"Nedf|rminskad ser"CHR$(23%)"5 j" 80 ; TAB(6%)"bilden ut s} h{r,"CHR$(23%)"5 _j" 81 ; TAB(6%)"och plattformarna"CHR$(23%)'} __ "#o' 82 ; TAB(6%)"{r markerade med "CHR$(23%)"4 h4 pz" 83 ; TAB(6%)'"_". 'CHR$(23%)"5 j5 /o" 84 ; TAB(6%)" "CHR$(23%)"5_ju0_j" 85 ; TAB(23%)CHR$(23%)"//////////" 86 ; : ; TAB(13%)"Tryck "CHR$(23%,8%); 87 GET A$ : IF A$<>CHR$(13%) 87 88 RESTORE 90 89 FOR N%=0% TO 3% : READ L0%(N%),L1%(N%),L2%(N%),L3%(N%) : NEXT N% 90 DATA 20,33,41,1 91 DATA 57,23,27,4 92 DATA 7,65,72,6 93 DATA 55,63,69,10 94 FOR N%=0% TO 15% : READ X%(N%),Y%(N%) : NEXT N% 95 DATA 0,2,0,3,1,1,1,2,1,3,1,4 96 DATA 2,2,2,3,3,1,3,2,3,3,3,4 97 DATA 4,1,4,4,5,0,5,5 98 B=57 : P%=0% 99 ; CHR$(12%); : RESTORE 101 100 FOR N%=0% TO 21% : READ A$ : ; CHR$(23%)A$; : NEXT N% : ; " Br{nsle :"CHR$(23%) : ; " Po{ng :";P%; 101 DATA "5 j" 102 DATA " j" 103 DATA "5 j" 104 DATA "0 `~" 105 DATA "}0 h" 106 DATA "|p ""/" 107 DATA "} ##/" 108 DATA "u """ 109 DATA "0 p||||||p x" 110 DATA "5 ~} `p|||" 111 DATA "% j5 x" 112 DATA "? ~u h" 113 DATA "u  j" 114 DATA "0 k """ 115 DATA "u ""? ""/" 116 DATA " k5 ##/o" 117 DATA " ju " 118 DATA "4 ""4 j" 119 DATA "5 t z" 120 DATA "0 j|pp x" 121 DATA "}pppp~" 122 DATA "///////////////////////////////////////" 123 FOR N%=22% TO 21%+B : SETDOT 66%,N% : SETDOT 67%,N% : NEXT N% 124 X=0 : Y=4 : X0=0 : Y0=.5 125 X%=X : Y%=Y 126 X0%=X : Y0%=Y 127 REM # M A I N L O O P 128 IF X%=X0% AND Y%=Y0% 133 129 FOR N%=0% TO 15% : CLRDOT X0%+X%(N%),Y0%+Y%(N%) : NEXT N% 130 FOR N%=0% TO 15% : IF DOT(X%+X%(N%),Y%+Y%(N%)) 147 131 SETDOT X%+X%(N%),Y%+Y%(N%) : NEXT N% 132 X0%=X% : Y0%=Y% 133 X=X+X0 : Y=Y+Y0 : X0=X0+.1 134 A$=CHR$(INP(56%)-128%) : IF A$>"" OUT 6%,0% 135 IF A$="A" Y0=Y0+.1 : OUT 6%,25% : B=B-.1 136 IF A$="S" Y0=Y0-.1 : OUT 6%,25% : B=B-.1 137 IF A$="L" X0=X0-.3 : OUT 6%,11% : B=B-.15 138 IF A$="\" X0=X0-.2 : OUT 6%,27% : B=B-.1 139 IF A$="[" X0=X0-.1 : OUT 6%,25% : B=B-.05 140 X%=X : Y%=Y 141 IF X%<0% 146 142 FOR N%=0% TO 3% : IF X%=L0%(N%) AND Y%>L1%(N%) AND Y%1 OR ABS(Y0)>.2 THEN X%=X0% : Y%=Y0% : GOTO 147 153 FOR K%=0% TO 5% : READ I%,J% : OUT 6%,I% : FOR F%=0% TO J% : NEXT F% : NEXT K% 154 P0%=(1.1-X0)*500%*L3%(N%) : P%=P%+P0% : ; CUR(23%,8%)P%; 155 B0=B+P0%/200% : IF B0>57 THEN B0=57 156 IF INT(B)>=B0 158 ELSE B=B+1 : ; CHR$(7%); : SETDOT 66%,21%+B : SETDOT 67%,21%+B 157 FOR N%=0% TO 300% : NEXT N% : GOTO 156 158 FOR K%=0% TO 4000% : NEXT K% : GOTO 99 159 DATA 251,1000,3,1000,249,1000,251,1500,249,1000,3,2000