RANDOMIZE TIMER DEFINT A-Z DIM a(1 TO 10, 1 TO 10) DIM n(1 TO 4), h(1 TO 10), v(1 TO 10) COLOR 7, 1 WIDTH 40 VIEW PRINT CLS INPUT "Lado :", lado CLS PRINT " A B C D E F G H I J " PRINT " ΪΔΒΔΒΔΒΔΒΔΒΔΒΔΒΔΒΔΒΔΏ Submarinos" PRINT "a³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³" PRINT " ΓΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔ΄ Torpedeiros" PRINT "b³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³" PRINT " ΓΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔ΄ Encoura‡ados" PRINT "c³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³" PRINT " ΓΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔ΄ Porta-avi”es" PRINT "d³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³" PRINT " ΓΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔ΄" PRINT "e³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³" PRINT " ΓΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔ΄" PRINT "f³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³" PRINT " ΓΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔ΄" PRINT "g³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³" PRINT " ΓΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔ΄" PRINT "h³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³" PRINT " ΓΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔ΄" PRINT "i³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³" PRINT " ΓΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔΕΔ΄" PRINT "j³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³" PRINT " ΐΔΑΔΑΔΑΔΑΔΑΔΑΔΑΔΑΔΑΔΩ" Restart: FOR i = 1 TO 10: FOR j = 1 TO 10: a(i, j) = -1: LOCATE 2 * i + 1, 2 * j + 1: PRINT " "; : NEXT j, i FOR i = 1 TO 4 n(i) = 5 - i NEXT FOR i = 1 TO 4 FOR j = 1 TO 5 - i x = 0 DO ok = -1 l = INT(RND * lado) + 1 c = INT(RND * lado) + 1 al = l: ac = c IF INT(RND * 2) THEN vl = 1: vc = 0 ELSE vl = 0: vc = 1 FOR k = 1 TO i IF l > lado OR c > lado THEN ok = 0: EXIT FOR IF a(l, c) > -1 THEN ok = 0: EXIT FOR l = l + vl: c = c + vc NEXT IF ok THEN l = al: c = ac IF i = 2 AND j = 1 THEN d = -1 ELSE d = 0 FOR k = 1 TO i a(l, c) = 1 IF d THEN LOCATE 2 * l + 1, 2 * c + 1: PRINT "Ϋ"; : a(l, c) = 0 FOR xl = l - 1 TO l + 1 FOR xc = c - 1 TO c + 1 IF xl >= 1 AND xl <= 10 AND xc >= 1 AND xc <= 10 THEN IF d AND SCREEN(2 * xl + 1, 2 * xc + 1) = 32 THEN LOCATE 2 * xl + 1, 2 * xc + 1: PRINT "°"; IF a(xl, xc) = -1 THEN a(xl, xc) = 0 END IF END IF NEXT NEXT l = l + vl: c = c + vc NEXT END IF x = x + 1 IF x = 40 GOTO Restart LOOP UNTIL ok NEXT NEXT FOR i = 1 TO 10 FOR j = 1 TO 10 IF a(i, j) = -1 THEN a(i, j) = 0 NEXT NEXT n(2) = n(2) - 1 verif = -1 n0 = 0 n1 = 0 n4 = 0 FOR i = 1 TO 10 h(i) = 0: v(i) = 0 FOR j = 1 TO 10 h(i) = h(i) + a(i, j) v(i) = v(i) + a(j, i) NEXT NEXT DO t = 0 FOR i = 1 TO 10 t = t + h(i) + v(i) IF h(i) = 0 THEN FOR j = 1 TO 10 IF SCREEN(2 * i + 1, 2 * j + 1) = 32 THEN LOCATE 2 * i + 1, 2 * j + 1: PRINT "°"; NEXT END IF IF v(i) = 0 THEN FOR j = 1 TO 10 IF SCREEN(2 * j + 1, 2 * i + 1) = 32 THEN LOCATE 2 * j + 1, 2 * i + 1: PRINT "°"; NEXT END IF LOCATE 2 * i + 1, 23: PRINT USING "#"; h(i); LOCATE 23, 2 * i + 1: PRINT USING "#"; v(i); NEXT IF t = 0 THEN EXIT DO FOR i = 1 TO 4 FOR j = 1 TO 5 - i IF j > n(i) THEN x$ = "o" ELSE x$ = "ώ" LOCATE 2 * i + 1, 28 + (j - 1) * (i + 1): PRINT STRING$(i, x$); NEXT NEXT FOR i = 12 TO 20 LOCATE i, 25: PRINT " "; NEXT LOCATE 12, 25: PRINT "Colocar "; LOCATE 13, 26 DO DO: f = INSTR("STEP ", UCASE$(INPUT$(1))) - 1: LOOP WHILE f = -1 IF f = 0 THEN FOR i = 1 TO 10 FOR j = 1 TO 10 LOCATE 2 * i + 1, 2 * j + 1 IF a(i, j) = 1 THEN PRINT "ώ" IF a(i, j) = 0 AND SCREEN(2 * i + 1, 2 * j + 1) <> 219 THEN PRINT "°"; NEXT NEXT BEEP k$ = INPUT$(1) EXIT DO END IF IF f = 5 GOTO Restart LOOP WHILE n(f) = 0 SELECT CASE f CASE 0: EXIT DO CASE 1: PRINT "submarino "; CASE 2: PRINT "torpedeiro "; CASE 3: PRINT "encoura‡ado "; CASE 4: PRINT "porta-avi”es"; END SELECT LOCATE 14, 25: PRINT "na linha "; DO: l = ASC(UCASE$(INPUT$(1))) - 64: LOOP UNTIL l > 0 AND l < 11 PRINT CHR$(96 + l); LOCATE 15, 25: PRINT "na coluna "; DO: c = ASC(UCASE$(INPUT$(1))) - 64: LOOP UNTIL c > 0 AND c < 11 PRINT CHR$(64 + c); LOCATE 16, 25: PRINT CHR$(26) + " ou " + CHR$(25); DO k$ = INKEY$ IF k$ = CHR$(0) + "P" THEN vl = 1: vc = 0: EXIT DO IF k$ = CHR$(0) + "M" THEN vl = 0: vc = 1: EXIT DO LOOP IF l + f * vl - 1 <= 10 AND c + f * vc - 1 <= 10 THEN al = l: ac = c ok = -1 FOR i = 1 TO f IF SCREEN(2 * l + 1, 2 * c + 1) <> 32 THEN ok = 0: EXIT FOR l = l + vl: c = c + vc NEXT IF ok THEN l = al: c = ac n(f) = n(f) - 1 FOR i = 1 TO f LOCATE 2 * l + 1, 2 * c + 1: PRINT "ώ"; h(l) = h(l) - 1 v(c) = v(c) - 1 FOR xl = l - 1 TO l + 1 FOR xc = c - 1 TO c + 1 IF xl >= 1 AND xl <= 10 AND xc >= 1 AND xc <= 10 THEN IF SCREEN(2 * xl + 1, 2 * xc + 1) = 32 THEN LOCATE 2 * xl + 1, 2 * xc + 1: PRINT "°"; END IF NEXT NEXT l = l + vl: c = c + vc NEXT END IF END IF BEEP LOOP COLOR 7, 0 WIDTH 80 CLS SYSTEM