PROGRAM combana ; USES wincrt ; VAR t1,t2,u1,u2 : ARRAY[1..8,1..8] OF integer ; a,b,a1,a2,b1,b2,c1,c2,d1,d2,e1,e2,f1,f2,g1,g2,h1,h2,i,j,k,n1,n2 : integer ; BEGIN REPEAT WriteLn('Joueur 1, choisissez les coordonnées du bateau de longueur 3 (grille 8*8)'); ReadLn(a1,b1,c1,d1) ; UNTIL (c1<9) AND (d1<9) AND ((a1=c1) AND (d1=b1+2)) OR ((d1=b1) AND (c1=a1+2)); REPEAT WriteLn('Joueur 1, choisissez le bateau de longueur 4'); ReadLn(e1,f1,g1,h1) ; UNTIL (g1<9) AND (h1<9) AND ((e1=g1) AND (h1=f1+3)) OR ((h1=f1) AND (g1=e1+3)); FOR i:=1 TO 30 DO WriteLn(' '); REPEAT WriteLn('Joueur 2, choisissez les coordonnées du bateau de longueur 3 (grille 8*8)'); ReadLn(a2,b2,c2,d2) ; UNTIL (c2<9) AND (d2<9) AND ((a2=c2) AND (d2=b2+2)) OR ((d2=b2) AND (c2=a2+2)); REPEAT WriteLn('Joueur 2, choisissez le bateau de longueur 4'); ReadLn(e2,f2,g2,h2) ; UNTIL (g2<9) AND (h2<9) AND ((e2=g2) AND (h2=f2+3)) OR ((h2=f2) AND (g2=e2+3)); FOR i:=1 TO 20 DO WriteLn(' '); FOR i:=1 TO 8 DO FOR j:=1 TO 8 DO BEGIN t1[i,j]:=9; t2[i,j]:=9; u1[i,j]:=9; u2[i,j]:=9; END; FOR i:=a1 TO c1 DO FOR j:=b1 TO d1 DO u1[i,j]:=1; FOR i:=e1 TO g1 DO FOR j:=f1 TO h1 DO u1[i,j]:=1; FOR i:=a2 TO c2 DO FOR j:=b2 TO d2 DO u2[i,j]:=1; FOR i:=e2 TO g2 DO FOR j:=f2 TO h2 DO u2[i,j]:=1; n1:=0; n2:=0; FOR i:=1 TO 8 DO FOR j:=1 TO 8 DO IF u1[i,j]=1 THEN n1:=n1+1; FOR i:=1 TO 8 DO FOR j:=1 TO 8 DO IF u2[i,j]=1 THEN n2:=n2+1; k:=1; REPEAT k:=(k+1) mod 2; WriteLn('Voici les grilles'); WriteLn(' '); FOR i:=1 TO 8 DO BEGIN Write(' '); FOR j:=1 TO 8 DO Write(t1[i,j],' '); Write(' '); FOR j:=1 TO 8 DO Write(t2[i,j],' '); WriteLn(' '); END; WriteLn(' '); WriteLn('Joueur ',k+1,' où lancez-vous votre missile ?'); ReadLn(a,b); IF k=1 THEN BEGIN IF b=789 THEN BEGIN Write(a1,' ',b1,' ',c1,' ',d1,' ',e1,' ',f1,' ',g1,' ',h1); WriteLn(' '); END ELSE BEGIN IF u1[a,b]=1 THEN BEGIN WriteLn('Touché !!'); IF t1[a,b]=9 THEN n1:=n1-1; t1[a,b]:=1; END ELSE BEGIN WriteLn('Un coup dans l eau'); t1[a,b]:=0; END; END; END; IF k=0 THEN BEGIN IF b=123 THEN BEGIN Write(a2,' ',b2,' ',c2,' ',d2,' ',e2,' ',f2,' ',g2,' ',h2); WriteLn(' '); END ELSE BEGIN IF u2[a,b]=1 THEN BEGIN WriteLn('Touché !!'); IF t2[a,b]=9 THEN n2:=n2-1; t2[a,b]:=1; END ELSE BEGIN WriteLn('Un coup dans l eau'); t2[a,b]:=0; END; END; END; UNTIL (n1=0) OR (n2=0) ; IF n1=0 THEN WriteLn('Bravo joueur 2, tu as gagné !') ELSE WriteLn('Bravo joueur 1, tu as gagné !'); END.