100 REM  ******************************
101 REM  **     PARA LINHA APPLE     **
102 REM  **                          **
103 REM  **     GUERRA GALACTICA     **
104 REM  ******************************
105 REM
106 D$=CHR$(4):DIM P$(8),PX(3),PY(3),PZ(3),VX(3),VY(3),QX(3),QY(3),QZ(3),R$(4)
107 GOSUB 235
108 GOSUB 203
109 P$(0)="/012":P$(1)="()*+":P$(2)="!"+CHR$(34)+"#$":P$(3)="34":P$(4)="%&":P$(5)=",-"
110 P$(6)="5":P$(7)=".":P$(8)="'"
111 GOSUB 200
112 FOR I=0 TO 3:PZ(I)=1000:QZ(I)=1000: NEXT
113 CO=.95:SH=5000:SC=0:GOSUB 191:GOSUB 196
114 XP=52:YP=59:XDRAW 1 AT XP,YP
115 RF=0:FOR M=0 TO 3
116 IF SH=0 THEN 129
117 I=FRE(0):GOSUB 140:0N IGOSUB 143,144,145,146,147,156
118 IF PZ(M)=1000 THEN GOSUB 157:GOTO 127
119 IF PZ(M)<0 THEN RF=1:GOTO 126
120 GOSUB 161
121 IF PZ(M)>15 THEN 126
122 IF RND(1)<CO*.8 THEN 126
123 XDRAW 1 AT XP,YP:XT=1NT(PX(M))*7-7:YT=INT(PY(M))*8-4
124 HCOLOR=5:GOSUB 133:HCOLOR=0:GOSUB 133:GOSUB 165:XDRAW 1 AT XP,YP
125 SH=SH-100:GOSUB 196
126 CO=CO*.9999:NEXT
127 IF RF<>0 THEN XDRAW 1 AT XP,YP:GOSUB 165:XDRAW 1 AT XP,YP
128 GOTO 115
129 XDRAW 1 AT XP,YP:VTAB 21:HIAB 2:PRINT "OUTRO JOGO ? (S/N) ";
130 GET A$:IF A$="N" OR A$="n" THEN TEXT :HOME :END
131 IF A$="S" OR AS="s" THEN 111
132 GOTO 130
133 HPLOT XT,YT TO 0,0:HPLOT XT,YP TO 0,159
134 HPLOT XT,YT TO 279,0:HPLOT XT,YT TO 279,159
135 RETURN
136 REM
137 REM * LE TECLADO E DEFINE *
138 REM * NOVO MOVIMENTO.     *
139 REM
140 I=0:A=PEEK(49152)
141 IF A>127 THEN POKE 49168,0:A$=CHR$(A-128):FOR I=1 TO 6:1F A$<>MID$("J1LK P",I,1) THEN NEXT
142 RETURN
143 GOSUB 189:XP=XP-(XP>6)*7:GOTO 190
144 GOSUB 189:YP=YP-(YP>7)*8:GOTO 190
145 GOSUB 189:XP=XP+(XP<273)*7:GOTO 190
146 GOSUB 189:YP=YP+(YP<152)*8:GOT0 190
147 HCOLOR=7:XDRAW 1 AT XP,YP:HPLOT 0,159 TO XP,YP:HPLOT 279,159 TO XP,YP
148 HCOLOR=0:HPLOT 0,159 TO XP,YP:HPLOT 279,159 TO XP,YP
149 XC=INT(XP/7)+1:YC=INT(YP/8)+1:FOR =0 TO 3:IF PZ(J)=1000 THEN 154
150 IF YC<>INT(PY(J)) THEN 154
151 IF XC<INT(PX(J))-(PZ(J)<=15)-(PZ(J)<=30) THEN 154
152 IF XC>INT(PX(J))+(PZ(J)<=15) THEN 154
153 PZ(J)=-PZ(J):GOSUB 165:SC=SC+100: GOSUB191:GOTO 155
154 NEXT
155 XDRAW 1 AT XP,YP:SH=SH-20:GOSUB 196 :RETURN
156 GET A$:RETURN
157 IF RND(I)<CO THEN 160
158 PX(M)=RND(1)*35+3:PY(M)=RND(1)*20+1:PZ(M)=45
159 R=RND(1)-.5:VX(M)=(ABS(R)-.25):VY(M)=SQR(.0625-VX(M)*VX(M))*SGN(R):RF=1
160 RETURN
161 PX(M)=PX(M)+VX(M)*(PX(M)>4 AND PX(M)<37):1F INT(QX(M))<>INT(PX(M)) THEN RF=1
162 PY(M)=PY(M)+VY(M)*(PY(M)>2 AND PY(M)<20):IF INT(QY(M))<>INT(PY(M)) THEN RF=1
163 PZ(M)=PZ(M)-2*(PZ(M)>2):IF PZ(M)=30 OR PZ(M)=15 THEN RF=1
164 RETURN
165 FOR I=0 TO 3:IF QZ(I)=1000 THEN 173
166 NF=QZ(I):QZ(I)=ABS(QZ(I))
167 IF QZ(I)<=15 THEN GOSUB 180:GOTO 170
168 IF QZ(I)<=30 THEN GOSUB 181:GOTO 170
169 GOSUB 182
170 IF NF>=0 THEN 173
171 IF I<3 THEN GOSUB 187:I=I-1
172 QZ(3)=1000
173 NEXT :FOR I=3 TO 0 STEP -1:IF PZ(I)=1000 THEN 178
174 QX(I)=PX(I):QY(I)=PY(I):QZ(I)=PZ(I)
175 IF ABS(PZ(I))<=15 THEN GOSUB 183:GOT0 178
176 IF ABS(PZ(I))<=30 THEN GOSUB 184:GOTO 178
177 GOSUB 185
178 NEXT
179 RETURN
180 HTAB QX(I)-2:VTAB QY(I):PRINT "    ":RETURN
181 HTAB QX(I)-1:VTAB QY(I):PRINT "  ":RETURN
182 HTAB QX(I):VTAB QY(1):PRINT" ":RETURN
183 GOSUB 186:HTAB PX(I)-2:VTAB PY(I):PRINT P$(PH):RETURN
184 GOSUB 186:HTA8 PX(I)-1:VTAB PY(I):PRINT P$(PH+3):RETURN
185 GOSUB 186:HTAB PX(I):VTAB PY(I):PRINT P$(PH+6):RETURN
186 PH=(PZ(I)>=0)*INT(PX(I)-2*INT(PX(I)/2)+1):RETURN
187 FOR K=I TO 2:PX(K)=PX(K+1):PY(K)=PY(K+1):PZ(K)=PZ(K+1)
188 VX(K)=VX(K+1):VY(K)=VY(K+1):QX(K)=QX(K+1):QY(K)=QY(K+1):QZ(K)=QZ(K+1):NEXT :PZ(3)=1000:RETURN
189 OX=XP:OY=YP:RETURN
190 XDRAW1 AT OX,OY:.XDRAW1 AT XP,YP:RETURN
191 N$=STR$(SC):VTAB 22:HTAB 11:GOSUB 198:R=INT(SC/2000):IF R>4 THEN R=4
192 VTAB 24:HTAB 16:CALL -868:PRINT R$(R);:RETURN
193 REM
194 REM * PREPARA TELA        *
195 REM
196 IF SH<0 THEN SH=0
197 N$=STR$(SH):VTAB 22:HTAB 31:GOT0 198
198 IF LEN(N$)<5 THEN PRINT LEFT$("0000",5-LEN(N$));
199 PRINT N$;:RETURN
200 HOME :HGR :INVERSE :VTAB 22:HTAB 2: PRINT " PONTOS ";:HTAB 18:PRINT " POTENCIA ";
201 VTAB 24:HTAB 02:PRINT " GRADUACAO ";
202 NORMAL :RETURN
203 POKE 232,100:POKE 233,3
204 POKE 868,1:POKE 870,4:POKE 871,0
205 FOR I=0 TO 4:READ A:POKE 872+I,A:NEXT
206 HCOLOR=7:ROT=0:SCALE=4
207 FOR I=0 TO 4:READ R$(I):NEXT
208 FOR I=768 TO I+87:READ A:POKE I,A:NEXT
209 FOR I=138*256 TO I+175:READ A:POKE I,A:NEXT
210 IF PEEK(191*256)=76 THEN PRINT D$;"PR#A$300":GOTO 212
211 POKE 54,0:POKE 55,3:CALL 1002
212 POKE 6,0:POKE 7,138:RETURN
213 DATA 176,12,31,5,0
214 REM
215 REM *        GRADUACOES       *
216 REM
217 DATA SARGENTO,CAPITAO,MAJOR,CORONEL,GENERAL
218 REM
219 REM * SUB-ROTINA EM CODIGO DE *
220 REM *        MAQUINA          *
221 REM
222 DATA 216,120,133,69,134,70,132,71,166,7,10,10,176,4,16,62,48,4,16,1,232,232,10,134,27,24,101,6,133,26
223 DATA 144,2,230,27,165,40,133,8,165,41,41,3,5,230,133,9,162,0,160,0,177,26,36,50,48,2,73,127,164,36
224 DATA  145,8,230,26,208,2,230,27,165,9,24,105,4,133,9,202,200,226,165,69,166,70,164,71,80,76,240,253
225 REM
226 REM * RE-DEFINICAO DE CARACTE- *
227 REM * RES. (NAVES INIMIGAS)    *
228 REM
229 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,40,42,2,64,64,96,16,21,117,112,0,0,0,1,2,42,43,3,0,0,0,0,0,0,5,21,16
230 DATA  0,0,0,0,64,104,66,0,0,0,0,1,3,23,67,0,0,0,0,0,8,42,0,0,0,0,0,0,64,84,21,1,32,32,112,8,10.122,120,0
231 DATA 0,0,0,1,21,85,65,0,0,0,8,0,0,2,10,8,0,0,0,64,96,116,97,0,0,0,0,0,1,11,33,0,0,0,0,0,4,21,0,0
232 DATA 24,48,24,64,118,3,56,0,56,99,48,55,88,111,102,0,6,12,63,27,113,31,112,0,3,6,48,108,12,51,0,0,0,56,99,48,55,88,0,0
233 DATA 0,6,12,63,27,113,0,0,0,0,76,118,54,0,0,0
234 REM
235 REM * INSTRUCOES
236 REM
237 TEXT :HOME :VTAB 12:HTAB 05:PRINT " DESEJA INSTRUCOES ? (S/N) ";
238 GET A$:IF A$="S" OR A$="s" THEN 241
239 IF A$="N" OR A$="n" THEN RETURN
240 GOTO 238
241 HOME :HTAB 10:INVERSE :PRINT " GUERRA GALACTICA ":NORMAL
242 PRINT :PRINT "VOCE ESTA  EM UM CRUZADOR  GALACTICO EM"
243 PRINT :PRINT "DIRECAO AO  SISTEMA DE ANDROMEDA.  SUA "
244 PRINT :PRINT "MISSAO E' A DE LEVAR UMA CARGA PRECIOSA"
245 PRINT :PRINT "A SALVO DE PIRATAS DO ESPACO DUE TENTA-"
246 PRINT :PRINT "RAO INTERCEPTA-LO. SUA  NAVE ESTA EQUI-"
247 PRINT :PRINT "PADA COM UMA PODEROS A  ARMA  LAZER DUE"
248 PRINT :PRINT "CONSUMIRA 20 PONTOS DE SUA POTENCIA CA-"
249 PRINT :PRINT "DA VEZ  QUE ACIONADA.  POREM 100 PONTOS"
250 PRINT :PRINT "SERAO  PERDIDOS CADA VEZ QUE O INIMIGO "
251 PRINT :PRINT "ACERTE SUA NAVE."
252 PRINT :PRINT "QUALQUER TECLA PARA CONTINUAR ";:GET A$
253 HOME :PRINT :PRINT "SUA PROMOCAO DEPENDERA  DE SUA PERFOR-"
254 PRINT :PRINT "MANCE PERANTE 0 INIMIGO.  A CADA 20 NA-"
255 PRINT :PRINT "VES INIMIGAS ABATIDAS,  VOCE SUPIRA UM "
256 PRINT :PRINT "POSTO."
257 PRINT :PRINT "INTRUCOES SOBRE PILOTAGEM:"
258 PRINT :PRINT "               CIMA"
259 PRINT :PRINT "                 I"
260 PRINT :PRINT "  ESQUERDA     J   L    DIREITA"
261 PRINT :PRINT "                 K"
262 PRINT :PRINT "               BAIXO"
263 PRINT :PRINT "USE A BARRA DE ESPACO PARA ATIRAR"
264 PRINT :PRINT "QUALQUER TECLA PARA CONTINUAR. ";:GET A$
265 RETURN

