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