100 REM*********************************
105 REM 
110 REM    BATALHA NO MAR 
115 REM   PARA CP-400 COLOR 
120 REM      16K OU 64K
125 REM 
130 REM*********************************
135 REM 
140 REM*********************************
145 REM    INICIALIZACAO 
150 REM*********************************
155 REM
160 PMODE0,1: PCLEAR1: CLEAR300
165 K=176: QQ=501: RN=RND(-TIMER)
170 DIM P(9)
175 REM 
180 REM*********************************
185 REM  PREPARA A TELA DO JOGO 
190 REM*********************************
195 REM
200 CLS3: PRINT STR1NG$(9,144)
205 PRINT @ 8,"BATALHA NO MAR";
210 PRINT STRING$(42,144);
215 PRINT STRING$(32,"#");
220 PRINT STRING$(96,159);
225 PRINT @ 160,STRING$(32,159);: PRINT @ K,"<X>";
230 REM
235 REM*********************************
240 REM   ROTINA PRINCIPAL 
245 REM*********************************
250 REM 
255 FOR X=0 TO 9
260 P(X)= RND(288) + 221
265 IF X=0 THEN 275
270 FOR Q=0 TO X-1: IF P(X)=>P(Q)+2 OR P(X)=< P(Q)-2 THEN NEXT Q ELSE 260
275 PRINT @ P(X), CHR$(127);
280 NEXTX
285 FOR X=0 TO 9 
290 IF P(X)=0 THEN 315 
295 P(X)=P(X)-1 
300 IF P(X) < 192 THEN 325
305 PRINT @ P(X)+1, CHR$(175);
310 PRINT @ P(X), CHR$(127);
315 NEXT X
320 IF As<>"F" THEN 330 ELSE RETURN
325 PRINT @ P(X)+1, CHR$(175);: XX=XX-5: P(X)=507: GOTO 305
330 A$=INKEY$
335 QQ=QQ-1: PRINT @ 36,"PLACAR "XX,"TEMPO "QQ; 
340 IF QQ=0 THEN 580 
345 REM
350 REM*********************************
355 REM    VERIFICA TECLADO 
360 REM*********************************
365 REM
370 IF A$="G" THEN K=K-2
375 IF A$="H" THEN K=K+2
380 IF A$="F" THEN GOSUB 410
385 IF K<160 THEN K=160
390 IF K>189 THEN K=189
395 PRINT @ 160, STRING$(32,159);: PRINT @ K,"<X>";
400 GOSUB 285 
405 GOTO 330
410 II=K
415 FOR I=0 TO 9
420 II=II+32 
425 IF II>511 THEN GOTO 500
430 GOSUB 285
435 REM 
440 REM********************************* 
445 REM   VERIFICA SE ACERTOU 
450 REM********************************* 
455 REM
460 PRINT @ II,"I";
465 FOR T=0 TO 9
470 IF P(T)=II THEN 475 ELSE 485
475 P(T)=0: XX=XX+10: Z=Z+1: PRINT @ II,CHR$(175);: SOUND 10,1
480 IF Z=10 THEN 530 ELSE 500 
485 NEXT T 
490 PRINT @ II,CHR$(175);
495 NEXT I 
500 A$="": GOTO 285 
505 REM
510 REM*********************************
515 REM  PREPARA NOVA ETAPA 
520 REM*********************************
525 REM
530 Z=0
535 CLS 0: PRINT @ 224," TODOS OS SUBMARINOS DESTRUIDOS"
540 PRINT @ 6,"PLACAR "XX "TEMPO "QQ;
545 FOR TM=1TO10: PLAY"T30CDEFGAB": NEXT TM: FORZZ=0T0200: NEXT ZZ: GOTO200 
550 REM 
555 REM*********************************
560 REM  AVALIA RESULTADOS, 
565 REM  RETORNA OU FINALIZA 
570 REM*********************************
575 REM 
580 PRINT @ 71,"TERMINOU O TEMPO";
585 PRINT @ 96,"      RESULTADO >> ";
590 IF XX<100 THEN PRINT"FRACO":GOTO 615 
595 IF XX<200 THEN PRINT"MEDIO":GOTO 615 
600 IF XX<300 THEN PRINT"LEGAL":GOTO 615 
605 IF XX<400 THEN PRINT"OTIMO":GOTO 615 
610 PRINT"MELHOR IMPOSSIVEL"
615 PRINT@486,"JOGA NOVAMENTE  (S/N)";: RE$=""
620 RE$=INKEYS:IF RE$="" THEN 620 
625 IF RE$="N" THEN CLS:END ELSE IF RE$="S" THEN GOTO 110 ELSE 615
630 REM
635 REM*********************************
640 REM  FINAL DA LISTAGEM 
645 REM*********************************

