program campo_de_tiro;
uses crt;
var
mapa: array[1..80,1..20] of byte; { el mapa de 80 columnas (x) }
salir : boolean; { 20 filas (y) }
disp : word;
procedure inicializa;
var
i,j : byte;
begin
disp:=0;
for i:=1 to 80 do { inicializa el mapa colocando todas }
for j:=1 to 20 do { las posiciones = 0 }
mapa[i,j]:=0;
randomize; { coloca en un punto aleatorio del }
mapa[random(79+1),random(19+1)]:=1; { mapa, el blanco = 1}
end;
procedure dibuja_mapa; { se encarga de dibujar el mapa cada turno }
var
x,y : byte;
begin
for x:=1 to 80 do
for y:=1 to 20 do
begin
gotoxy(x,y);
if (mapa[x,y]<>2) then write(0) { aqui si la coordena es }
else write('o'); { = 2 (disparo) pone 'o' }
end;
end;
procedure controla; { controla las coordenadas del }
var { disparo hecho = 2}
xx,yy : byte;
loopx,loopy : byte;
begin
writeln('coordenadas x,y');
clreol;write('para (x) : ');readln(xx);
if (xx=101) and (yy=101) then {El trukillo}
begin
for loopx:=1 to 80 do
for loopy:=1 to 20 do
begin
gotoxy(loopx,loopy);
write(mapa[loopx,loopy]);
end;
end;
clreol;write('para (y) : ');readln(yy);
if (xx=0) and (yy=0) then salir:=true; { si ingresa x=0 y y=0 sales del juego }
if mapa[xx,yy]=1 then
begin
writeln('en el blanco - presione enter para salir'); { si le diste }
writeln('disparos realizados : ',disp); { sales del }
readln; { juego }
salir:=true;
end;
mapa[xx,yy]:=2;
inc(disp);
end;
begin
salir:=false;
clrscr;
inicializa;
repeat
dibuja_mapa;
controla;
until(salir);
end.