for k:=1 to 10 do
for kk:=1 to 10 do
begin
if M[k,kk]<>'' then
M[k,kk]:='';
end;
RANDOMIZE;
i:=1;
while (i<18) do
begin
k:=Random(10) +1;
kk:=Random(10)+1;
if M[k,kk]='' then
begin
i:=i+1;
if ((k>1) and (k<=9)) and ((kk>1) and (kk<=9)) then
begin
if (M[k-1,kk-1]='') and
(M[k+1,kk+1]='') and
(M[k-1,kk]='') and
(M[k,kk-1]='') and
(M[k+1,kk]='') and
(M[k,kk+1]='') and
(M[k-1,kk+1]='') and
(M[k+1,kk-1]='') then
begin
M[k,kk]:=IntToStr(Random(5));
end;
end;
if (k=1) and (kk=1) then
begin
if (M[k,kk+1]='') and
(M[k+1,kk+1]='') and
(M[k+1,kk]='') then
begin
M[k,kk]:=IntToStr(Random(5));
end;
end;
if (k=1) and (kk=10) then
begin
if (M[k+1,kk]='') and
(M[k+1,kk-1]='') and
(M[k-1,kk]='') then
begin
M[k,kk]:=IntToStr(Random(5));
end;
end;
if (k=10) and (k=1) then
begin
if (M[k,kk+1]='') and
(M[k-1,kk+1]='') and
(M[k-1,kk]='') then
begin
M[k,kk]:=IntToStr(Random(5));
end;
end;
if (k=10) and (kk=10) then
begin
if (M[k,kk-1]='') and
(M[k-1,kk-1]='') and
(M[k-1,kk]='') then
begin
M[k,kk]:=IntToStr(Random(5));
end;
end;
if (k=1) and (kk<10) and (kk>1) then
begin
if (M[k,kk-1]='') and
(M[k,kk+1]='') and
(M[k+1,kk]='') and
(M[k+1,kk-1]='') and
(M[k+1,kk+1]='') then
begin
M[k,kk]:=inttostr(Random(5));
end;
end;
if (k=10) and (kk<10) and (kk>10) then
begin
if (M[k-1,kk-1]='') and
(M[k-1,kk]='') and
(M[k-1,kk+1]='') and
(M[k,kk-1]='') and
(M[k,kk+1]='') then
begin
M[k,kk]:=inttostr(Random(5));
end;
end;
if (kk=1) then
begin
if (M[k-1,kk]='') and
(M[k+1,kk]='') and
(M[k+1,kk+1]='') and
(M[k,kk+1]='') and
(M[k-1,kk+1]='') then
begin
M[k,kk]:=inttostr(Random(5));
end;
end;
if(kk=10) then
begin
if (M[k-1,kk]='') and
(M[k+1,kk]='') and
(M[k,kk-1]='') and
(M[k-1,kk-1]='') and
(M[k+1,kk-1]='') then
begin
M[k,kk]:=inttostr(Random(5));
end;
end;
end;