program campo_minado;
uses crt;
type vetor = array[0..11,0..11] of integer;
{==== declaracao das variaveis utilizadas no programa ===}
var
vet: vetor;
c,l:integer;
i,j:integer;
pos_i,pos_j:integer;
a,b:integer;
x: integer;
{=== inicio da funcao bomba: verifica se a posicao é uma bomba ===}
function bomba(a,b:integer ; vet:vetor):boolean;
begin
if (vet[a,b] = 9) then
bomba:=true
else bomba:= false
end;
{== inicio do procedimento teste: verifica quantas bombas há na adjacência}
procedure teste(a,b:integer ; vet:vetor)
x:=0;
if (vet[a+1,b] = 9) then
x:=x+1;
if (vet[a-1,b] = 9) then
x:=x+1;
if (vet[a,b+1] = 9) then
x:=x+1;
if (vet[a,b-1] = 9) then
x:=x+1
if(vet[a-1,b+1] = 9
{=== INICIO DO PROGRAMA PRINCIPAL ===}
begin
{=== inicializacao do vetor ===}
randomize;
for i:= 0 to 11 do
begin
for j:=0 to 11 do
vet[i,j]:=0
end;
{=== determinacao aleatoria da posicao das bombas ===}
for i:= 1 to 40 do
begin
pos_i:= random(10) + 1;
pos_j:= random(10) +1;
while ( vet[pos_i, pos_j] = 9 ) do
begin
pos_i:= random(10) + 1;
pos_j:= random(10) +1;
end;
vet[pos_i,pos_j]:=9;
end;
{=== imprime a matriz inicial ===}
c:=1;
l:=1;
for i := 1 to 10 do
write(i, ' ');
writeln;
for i:= 1 to 10 do
begin
for j:=1 to 10 do
begin
gotoxy(c,l+1);
write('_');
c:=c+3;
if (j = 10) then
writeln(' ', i:3);
end;
l:=l+1;
c:=1;
end;
writeln;
writeln;
write('digite a linha: '); readln(a);
write('digite a coluna: '); readln(b);
if bomba(a,b,vet)= true then
write('Na posicao escolhida ha uma boma.Voce perdeu.');
readln;
end.