1 REM ++++++++++++++++++++++++++++++++ 2 REM ! Program .... CHOPPER 3 REM ! Utg}va 2.0 83-05-11 4 REM ! av (c) Mintaur Software 7 REM ! Minne 32 Kbytes 8 REM ! Ins{nt av Torsten Alm 9 REM ++++++++++++++++++++++++++++++++ 10 REM 11 REM Screened by C R LERIN. 12 REM 20 RANDOMIZE 21 ; CHR$(12%); 22 L1%=35% : L2%=35% : B9%=1% : Y%=12% : X%=20% : H%=3% : R9%=1% : Q1%=25% : Q2%=20% 23 H$(1%)="(l," : H1$(1%)="w/#" : H2$(1%)=" " : H3$(1%)=" " 24 H$(2%)=" ,<$" : H1$(2%)="#/{" : H2$(2%)=" " : H3$(2%)=" " 25 W$(1%)="9,$" : W$(2%)="(,f" : W1$=" " 26 ; TAB(10%)"CHOPPER." 27 ; TAB(10%)"--------" 28 ; "Du {r pilot p} en bev{pnad r{ddnings- helikopter. Ditt uppdrag {r att r{dda s}m}nga m{nniskor som m|jligt." 29 ; "Du har 3st helikoptrar till p} basen. Du startar p} hembasen och flyger ut |ver fiendeland." 30 ; "Men v{gen {r full av fiender. Det finns fientliga luftv{rnskanoner, dem skall dubomba eller skjuta s|nder." 31 ; "Det finns ocks} fientliga lastbilar, demskall du ocks} f|rst|ra. Men husen skalldu f|rst landa brevid och h{mta" 32 ; "m{nniskor i. M{nniskorna l{mnar du av vid basen, det ger po{ng. Basen ligger till h|ger sett fr}n spelaren" 33 ; : ; "Tryck return f|r att komma vidare."; 34 GET \$ 35 IF ASC(\$)<>13% 34 36 ; CHR$(12%); 37 ; "F|rflyttning:" 38 ; "-------------" 39 ; : ; "Du styr med f|ljande tangenter:" 40 ; : ; "Upp}t--> ( W )" 41 ; "V{nster--> ( A ) ( S ) <--H|ger" 42 ; "Ner}t--> ( Z )" 43 ; : ; "\vrigt:" 44 ; "-------" 45 ; : ; "Du byter riktning med ( Q )." 46 ; "Du f{ller bomber med ( X )." 47 ; "Du skjuter med ( )." 48 ; "Du landar med ( 1 )." 49 ; : ; "Tryck p} f|r att g} vidare."; 50 GET \$ 51 IF ASC(\$)<>32% 50 52 ; : ; "Jag genererar marken. Ta en fika." 53 REM ****************** 54 REM *** MARKKONTUR *** 55 REM ****************** 56 DIM A$=530% 57 A$="" : FOR I%=1% TO 500% 58 IF RND>.5 A$=A$+"" ELSE A$=A$+"/" 59 NEXT I% 60 A$=A$+"" 61 ; CHR$(12%); 62 FOR I%=1% TO 23% : ; : ; CHR$(23%); : NEXT I% 63 REM ******************** 64 REM *** INITIERINGAR *** 65 REM ******************** 66 GOSUB 98 67 GOSUB 246 68 ; CUR(0%,0%)"Po{ng-->"P%; 69 ; CUR(0%,20%)CHR$(23%)"~,"CHR$(135%)"-->"H%; 70 REM **************** 71 REM *** MAINLOOP *** 72 REM **************** 73 GOSUB 84 74 IF P%<>P1% P1%=P% : ; CUR(0%,0%)"Po{ng-->"P1%; 75 IF B%=1% GOSUB 195 76 W%=W%+1% : IF W%>100% W%=0% : S=S+.01 77 IF J9%=0% AND RND>1.5-S J9%=1% : GOSUB 234 78 IF J9%=1% GOSUB 240 79 IF T%=1% GOSUB 126 80 GOTO 73 81 REM ****************** 82 REM *** HELIKOPTER *** 83 REM ****************** 84 N$=CHR$(INP(56%)-128%) 85 ON INSTR(1%,"WSZA QX1",N$)+1% GOSUB 88,89,90,91,92,93,95,96,277 86 IF T%=1% IF Y%=21% AND ABS(X%-T9%)<4% I1%=X%*2% : I2%=Y%*3%+4% : H%=H%-1% : T%=0% : T4%=0% : GOSUB 180 87 IF J9%=1% IF (Y%+1%=R% OR Y%=R%) AND ABS(X%+1%-K%+1%)<2% H%=H%-1% : I1%=X%*2%+4% : I2%=Y%*3%+2% : GOSUB 180 88 RETURN 89 V9%=0% : GOSUB 99 : Y%=Y%-1% : GOSUB 100 : GOSUB 98 : RETURN 90 V9%=0% : GOSUB 99 : X%=X%+1% : GOSUB 100 : GOSUB 98 : RETURN 91 V9%=0% : GOSUB 99 : Y%=Y%+1% : GOSUB 100 : GOSUB 98 : RETURN 92 V9%=0% : GOSUB 99 : X%=X%-1% : GOSUB 100 : GOSUB 98 : RETURN 93 IF Q1%>0% Q1%=Q1%-1% : OUT 6,137 : GOSUB 134 : RETURN 94 RETURN 95 IF V9%=1% RETURN ELSE V9%=1% : GOSUB 99 : R9%=R9%+1% : IF R9%>2% R9%=1% : GOSUB 98 : RETURN ELSE GOSUB 98 : RETURN 96 IF B%=0% AND Q2%>1% B%=1% : B1%=Y%*3%+6% : B2%=(X%+2%)*2%-1% : Q2%=Q2%-1% : RETURN 97 RETURN 98 ; CUR(Y%,X%)H$(R9%)CUR(Y%+1%,X%)H1$(R9%); : RETURN 99 ; CUR(Y%,X%)H2$(R9%)CUR(Y%+1%,X%)H3$(R9%); : RETURN 100 IF Y%<2% Y%=2% : RETURN 101 IF X%<1% X%=1% : M9%=M9%-1% : GOSUB 107 : RETURN 102 IF X%>35% X%=35% : M9%=M9%+1% : GOSUB 107 : RETURN 103 IF Y%>21% Y%=21% : RETURN 104 IF R9%=1% AND X%<17% X%=17% : M9%=M9%-1% : GOSUB 107 : RETURN 105 IF R9%=2% AND X%>20% X%=20% : M9%=M9%+1% : GOSUB 107 : RETURN 106 RETURN 107 IF M9%>465% M9%=465% : GOSUB 246 : RETURN 108 IF M9%<2% M9%=2% : RETURN 109 M9$=MID$(A$,M9%,38%) 110 IF B%=0% 111 ELSE IF X%<18% CLRDOT B1%,B2% : B2%=B2%+1% ELSE CLRDOT B1%,B2%+1% : B2%=B2%-1% 111 IF T7%=0% 112 ELSE IF X%<18% CLRDOT L1%,L2% : L2%=L2%+2% ELSE CLRDOT L1%,L2% : L2%=L2%-2% 112 T4%=T4%+1% : IF T4%>50% T4%=0% : T3%=0% 113 IF RND>.5-S AND T%=0% GOSUB 119 : IF T%=1% GOSUB 216 114 IF T%=0% 118 115 ; CUR(22%,T9%)T1$; : IF X%<18% T9%=T9%+1% ELSE T9%=T9%-1% 116 IF T9%<1% OR T9%>35% T6=0% : T7%=0% : CLRDOT L1%,L2% : M5%=0% : T%=0% : GOTO 118 117 ; CUR(22%,T9%)T$; 118 ; CUR(23%,1%)M9$; : RETURN 119 IF T3%<>0% RETURN 120 T3%=1% 121 IF R9%=1% AND X%<33% T9%=1% : T%=1% : RETURN 122 IF R9%=1% T9%=35% : T%=1% : RETURN 123 IF R9%=2% AND X%>2% T9%=35% : T%=1% : RETURN 124 IF R9%=2% T9%=1% : T%=1% : RETURN 125 RETURN 126 IF M5%>0% RETURN 127 IF T6%=1% GOTO 219 ELSE T2%=T2%+1% : IF T2%<15% RETURN ELSE ; CUR(22%,T9%)T1$; : T9%=T9%+1% 128 T2%=0% : IF T9%>35% T%=0% : RETURN 129 ; CUR(22%,T9%)T$; 130 RETURN 131 REM **************** 132 REM *** CHOPSHOT *** 133 REM **************** 134 I2%=Y%*3%+2% 135 ON R9% GOTO 136,142 136 FOR I1%=(X%*2%-1%) TO 2% STEP -1% 137 IF DOT(Y%*3%+4%,I1%) 148 138 SETDOT (Y%*3%+4%),I1% 139 CLRDOT (Y%*3%+4%),I1% 140 NEXT I1% 141 RETURN 142 FOR I1%=((X%+4%)*2%) TO 77% 143 IF DOT(Y%*3%+4%,I1%) 148 144 SETDOT (Y%*3%+4%),I1% 145 CLRDOT (Y%*3%+4%),I1% 146 NEXT I1% 147 RETURN 148 IF Y%<>21% OR ABS(I1%/2%-T9%)>=5% THEN 150 149 P%=P%+10% : T%=0% : T6=0% : T7%=0% : GOSUB 152 : ; CUR(22%,T9%)T1$; : M5%=0% : RETURN 150 IF Y%+1%=R% AND ABS((K%+1%)*2%-I1%)<6% J9%=0% : ; CUR(R%,K%)W1$; : GOSUB 152 : P%=P%+5% : RETURN 151 RETURN 152 REM **** SPR[NG **** 153 IF I1%-7%<2% I1%=I1%+3% : GOTO 153 154 IF I2%+3%>69% I2%=I2%-3% : GOTO 154 155 CLRDOT L1%,L2% 156 RESTORE 157 FOR I%=1% TO 17% 158 READ E%,E1% : SETDOT I2%+E%,I1%+E1% 159 NEXT I% 160 OUT 6,9 161 FOR I=1 TO 50 : NEXT I 162 FOR I%=1% TO 48% : READ E%,E1% : SETDOT I2%+E%,I1%+E1% 163 NEXT I% 164 FOR I=1 TO 250 : NEXT I 165 RESTORE 166 FOR I%=1% TO 17% 167 READ E%,E1% : CLRDOT I2%+E%,I1%+E1% 168 NEXT I% 169 FOR I=1 TO 50 : NEXT I 170 FOR I%=1% TO 48% : READ E%,E1% : CLRDOT I2%+E%,I1%+E1% 171 NEXT I% 172 OUT 6,0 173 RETURN 174 REM SPR[NGDATA 175 DATA -1,-3,-1,-2,-1,-1,-1,0,0,-4,0,-3,0,-2,0,-1,0,0,1,-4,1,-3,1,-2,1,-1,1,0,2,-3,2,-2,2,-1, 176 DATA -3,-1,-3,0,-2,-5,-2,-4,-2,-2,-2,-1,-2,0,-2,1,-2,2, -1,-6,-1,-5,-1,-4,-1,-3,-1,-2,-1,-1,-1,0,-1,1,-1,2, 177 DATA 0,-6,0,-5,0,-4,0,-3,0,-2,0,-1,0,0,0,1,0,2, 1,-6,1,-5,1,-4,1,-3,1,-2,1,-1,1,0,1,1,1,2, 178 DATA 2,-5,2,-4,2,-3,2,-2,2,-1,2,0,2,1, 3,-4,3,-3,3,-2,3,-1,3,0, 179 REM ************************ 180 REM *** CHOP THE CHOPPER *** 181 REM ************************ 182 ; CUR(10%,10%)"NEXT CHOPPER READY"; 183 FOR J%=1% TO 5% : GOSUB 152 : NEXT J% 184 P2%=0% : GOSUB 246 185 ; CHR$(12%); 186 FOR I%=1% TO 23% : ; : ; CHR$(23%); : NEXT I% 187 ; CUR(0%,0%)"Po{ng-->"P%; 188 ; CUR(0%,20%)CHR$(23%)"~,"CHR$(135%)"-->"H%; 189 M9%=465% : GOSUB 107 190 T6%=0% : T7%=0% : X%=20% : Y%=12% : R9%=1% : GOSUB 98 191 RETURN 192 REM ************ 193 REM *** BOMB *** 194 REM ************ 195 IF Q2%<1% RETURN 196 IF B2%<5% OR B2%>74% CLRDOT B1%,B2% : CLRDOT B1%,B2%+1% : B%=0% : RETURN 197 CLRDOT B1%,B2% : CLRDOT B1%,B2%+1% 198 B1%=B1%+B9% 199 IF DOT(B1%,B2%) OR DOT(B1%,B2%+1%) 202 200 SETDOT B1%,B2% : SETDOT B1%,B2%+1% 201 RETURN 202 B%=0% 203 N1%=22%*3% : N2%=(T9%+2%)*2% : I1%=B2% : I2%=B1%-4% 204 IF ABS(L1%-B1%)<3% AND ABS(L2%-B2%)<4% T7%=0% : P%=P%+1% 205 IF ABS(N1%-B1%)>=3% OR ABS(N2%-B2%)>=9% THEN 207 206 T%=0% : P%=P%+10% : T6%=0% : T7%=0% : T4%=0% : I2%=B1%-2% : ; CUR(22%,T9%)T1$; : M5%=0% 207 IF ABS(Y%*3%-B1%)<6% AND ABS((X%+2%)*2%-B2%)<5% H%=H%-1% : GOTO 180 208 IF ABS(R%*3%-B1%)>4% AND ABS((K%+1%)*2%-B2%)<9% J9%=0% : P%=P%+5% : ; CUR(R%,K%)W1$; : I1%=B2% : I2%=B1% 209 GOSUB 152 210 IF Y%=21% AND ABS(B2%-(X%+2%)*2%)<6% H%=H%-1% : GOSUB 180 211 GOSUB 98 212 RETURN 213 REM *************** 214 REM *** MARKM]L *** 215 REM *************** 216 IF RND>.3+S T$="o/o$" : T1$=" " : RETURN 217 IF RND<.2 T$="7w" : T1$=" " : M5%=1% : RETURN 218 T$="x}0" : T1$=" " : T6%=1% : L1%=21%*3% : T7%=0% : L2%=(T9%+1%)*2% : RETURN 219 IF T7%=0% AND ABS(ABS(T9%-X%)-(55%-Y%*3%))<5% GOSUB 218 : T7%=1% 220 IF T7%=0% AND ABS(T9%-X%)<8% GOSUB 218 : T7%=1% 221 IF T7%=0% RETURN 222 CLRDOT L1%,L2% : L1%=L1%-1% 223 IF L1%<4% T7%=0% : RETURN 224 IF DOT(L1%,L2%) 227 225 SETDOT L1%,L2% 226 RETURN 227 IF ABS(L1%-(Y%*3%+5%))<5% AND ABS(L2%-(X%+2%)*2%)<7% H%=H%-1% : I1%=L2% : I2%=L1% : GOSUB 180 : RETURN 228 IF ABS(L1%-(R%*3%))>=3% OR ABS(L2%-(K%+1%)*2%)>=8% THEN 230 229 J9%=0% : I1%=L2% : I2%=L1% : GOSUB 152 : ; CUR(R%,K%)W1$; : RETURN 230 T7%=0% : RETURN 231 REM ********************** 232 REM *** FLYING OBJEKTS *** 233 REM ********************** 234 R%=Y%+(RND*8%-4%) : IF R%>20% OR R%<2% 234 235 IF R9%=1% K%=1% ELSE K%=35% 236 RETURN 237 REM *************************** 238 REM *** MOVE FLYING OBJEKTS *** 239 REM *************************** 240 ; CUR(R%,K%)W1$; 241 IF R9%=1% K%=K%+1% : K5%=1% ELSE K%=K%-1% : K5%=2% 242 IF K%>35% OR K%<1% J9%=0% : RETURN 243 ; CUR(R%,K%)W$(K5%); 244 RETURN 245 REM ************* 246 REM *** BASEN *** 247 REM ************* 248 ; CHR$(12%); 249 FOR I%=1% TO 23% : ; : ; CHR$(23%); : NEXT I% 250 ; CUR(23%,1%)""; 251 ; CUR(16%,20%)" x||||||||||||<4"; 252 ; CUR(17%,20%)"`~g~5"; 253 ; CUR(18%,20%)"ZOXO5"; 254 ; CUR(19%,20%)"   %"; 255 ; CUR(20%,20%)" ?!"; 256 B%=0% : Q1%=25% : Q2%=20% : X%=10% : Y%=19% : R9%=1% : GOSUB 98 257 J9%=0% : M5%=0% 258 ; CUR(2%,10%)CHR$(135%)P2%" M[NNISKOR R[DDADE." 259 IF P2%<1% 268 260 FOR E%=1% TO P2% 261 OUT 6,43 262 FOR U1%=(X%*2%) TO 23%*2% 263 SETDOT 63%,U1% 264 FOR I=1 TO 50 : NEXT I 265 CLRDOT 63%,U1% : FOR I=1 TO 50 : NEXT I 266 NEXT U1% : NEXT E% 267 OUT 6,0 268 P%=P%+20%*P2% : P2%=0% 269 IF H%<1% GOTO 292 270 ; CUR(0%,10%)"*** BASEN ***"; 271 ; CUR(1%,10%)"TRYCK RETURN F\R START"; : GET \$ 272 IF ASC(\$)<>13% 271 273 GOSUB 185 : RETURN 274 REM ******************* 275 REM *** MASSA MASSA *** 276 REM ******************* 277 IF M5%<>1% RETURN 278 IF Y%<21% RETURN 279 M6%=RND*5%+1% : P2%=P2%+M6% 280 FOR I%=1% TO M6% 281 FOR U%=1% TO ABS(X%-T9%)*2% 282 OUT 6,43 283 IF X%>T9% U9%=1% ELSE U9%=-1% 284 IF DOT(68%,T9%*2%+U%*U9%) CLRDOT 68%,T9%*2%+U%*U9% ELSE SETDOT 68%,T9%*2%+U%*U9% 285 FOR I=1 TO 50 : NEXT I 286 IF DOT(68%,T9%*2%+U%*U9%) CLRDOT 68%,T9%*2%+U%*U9% ELSE SETDOT 68%,T9%*2%+U%*U9% 287 FOR I=1 TO 50 : NEXT I 288 NEXT U% 289 NEXT I% 290 M5%=2% : N$="*" : OUT 6,0 291 RETURN 292 REM ******************* 293 REM *** DESTRUCTION *** 294 REM ******************* 295 FOR I5%=10% TO 74% STEP 6% 296 I1%=I5% : I2%=55% : GOSUB 153 : NEXT I5% 297 ; CUR(10%,10%)"GAME OVER" 298 ; CUR(11%,10%)SPACE$(39%)CUR(11%,10%)CHR$(135%)"DU FICK"P%" PO[NG." 299 END