Guest User

BATALLA NAVAL (Alex Gutierrez)

a guest
May 15th, 2012
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.13 KB | None | 0 0
  1. program naval;
  2. uses crt;
  3. const
  4.         fil=20;
  5.         col=15;
  6. type  
  7.     batallaNaval = array [1..fil, 1..col] of boolean;
  8.  
  9. var
  10.     va: batallaNaval;
  11.     a,d,c,e,f : integer;
  12.     procedure indicarDisparo (var re,ra :integer; var prom : integer);
  13.     var
  14.         cont,disp,aux : integer;
  15.         resp : char;
  16.     begin
  17.         cont:=0;
  18.         disp:=0;
  19.         repeat
  20.             writeln ('Ingrese las coordenas donde va a efectuar el disparo');
  21.             readln (re,ra);
  22.             while (re<0) and (ra<0) and (re>col) and (ra>fil) do
  23.                 begin
  24.                     readln (re,ra);
  25.                     writeln ('Los puntos indicados no son correctos');
  26.                 end;
  27.             disp:=disp+1;
  28.             if va[ra,re] = true
  29.             then
  30.                 begin
  31.                     writeln ('Bien le diste a un barco');
  32.                     cont:=cont+1
  33.                 end
  34.             else   
  35.                 begin
  36.                     writeln ('Fallaste le diste al agua :D');
  37.                 end;           
  38.             writeln ('Cantidad de disparos efectuados ',disp);
  39.             writeln ('¿Desea efectuar otro disparo? s/n');
  40.             readln (resp); 
  41.         until (resp='n') or (disp=20);
  42.         aux:=(cont*100);
  43.         prom:=(aux div disp);
  44.         writeln ('Su promedio de disparos es %', prom);
  45.     end;   
  46.     procedure barcos (var x,y : integer);
  47.     var
  48.         z: char;
  49.         contador: integer;
  50.     begin
  51.         repeat 
  52.             contador:=0;
  53.             writeln ('Ingrese las coordenas donde se va a encontrar el barco');
  54.             readln (x,y);
  55.             while (x<0) and (y<0) and (x>col) and (y>fil) do
  56.                 begin
  57.                     readln (x,y);
  58.                     writeln ('Los puntos indicados no son correctos');
  59.                 end;
  60.             contador:=contador+1;
  61.             va [x,y]:= true;
  62.             if contador<10
  63.             then
  64.                 writeln ('¿Desea ingresar otro barco? s/n');
  65.                 readln (z);
  66.         until (z='n') or (contador=10);
  67.     end;   
  68.     procedure mostr (q,w : integer);
  69.     begin
  70.         writeln('Los barcos se encontraban en estas coordenadas:');
  71.         q:= 1;
  72.         while (q<=Fil) do
  73.             begin
  74.                 w:= 1;
  75.                     repeat
  76.                     if va[q,w]=true then
  77.                     writeln(q,',', w);                    
  78.                     w:= w + 1;
  79.                     until (w=Col);
  80.             q:= q + 1;
  81.             end;
  82.     end;
  83. begin
  84.     clrscr;
  85.     textcolor (red+blue);
  86.     barcos (c,e);  
  87.     clrscr;
  88.     textcolor (blue);
  89.     indicarDisparo (a,d,f);
  90.     textcolor (red+white);
  91.     mostr (c,e);
  92.     readkey;   
  93. end.
Advertisement
Add Comment
Please, Sign In to add comment