procedure TForm1.Button1Click(Sender: TObject);
begin
RANDOMIZE;
i:=0;
while (i<=12) do
begin
i:=i+1;
ACol:=Random(10);
ARow:=Random(10);
if StringGrid1.Cells[ACol,ARow]='' then
begin
if ((ACol>=1) and (ACol<=8)) and ((ARow>=1) and (ARow<=8)) then
begin
if (StringGrid1.Cells[ACol-1,ARow-1]<>'') and
(StringGrid1.Cells[ACol+1,ARow+1]<>'') and
(StringGrid1.Cells[ACol-1,ARow]<>'') and
(StringGrid1.Cells[ACol,ARow-1]<>'') and
(StringGrid1.Cells[ACol+1,ARow]<>'') and
(StringGrid1.Cells[ACol,ARow+1]<>'') and
(StringGrid1.Cells[ACol-1,ARow+1]<>'') and
(StringGrid1.Cells[ACol+1,ARow-1]<>'') then
begin
StringGrid1.Cells[ACol,ARow]:=IntToStr(Random(5));
StringGrid1.Cells[ACol-1,ARow-1]:='';
StringGrid1.Cells[ACol+1,ARow+1]:='';
StringGrid1.Cells[ACol-1,ARow]:='';
StringGrid1.Cells[ACol,ARow-1]:='';
StringGrid1.Cells[ACol+1,ARow]:='';
StringGrid1.Cells[ACol,ARow+1]:='';
StringGrid1.Cells[ACol-1,ARow+1]:='';
StringGrid1.Cells[ACol+1,ARow-1]:='';
end;
end;
if (ACol=0) and (ARow=0) then
begin
if (StringGrid1.Cells[ACol,ARow+1]<>'') and
(StringGrid1.Cells[ACol+1,ARow+1]<>'') and
(StringGrid1.Cells[ACol+1,ARow]<>'') then
begin
StringGrid1.Cells[ACol,ARow]:=IntToStr(Random(5));
StringGrid1.Cells[ACol,ARow+1]:='';
StringGrid1.Cells[ACol+1,ARow+1]:='';
StringGrid1.Cells[ACol+1,ARow]:='';
end;
end;
if (ACol=0) and (ARow=9) then
begin
if (StringGrid1.Cells[ACol+1,ARow]<>'') and
(StringGrid1.Cells[ACol+1,ARow-1]<>'') and
(StringGrid1.Cells[ACol-1,ARow]<>'') then
begin
StringGrid1.Cells[ACol,ARow]:=IntToStr(Random(5));
StringGrid1.Cells[ACol+1,ARow]:='';
StringGrid1.Cells[ACol+1,ARow-1]:='';
StringGrid1.Cells[ACol-1,ARow]:='';
end;
end;
if (ACol=9) and (ACol=0) then
begin
if (StringGrid1.Cells[ACol,ARow+1]<>'') and
(StringGrid1.Cells[ACol-1,ARow+1]<>'') and
(StringGrid1.Cells[ACol-1,ARow]<>'') then
begin
StringGrid1.Cells[ACol,ARow]:=IntToStr(Random(5));
StringGrid1.Cells[ACol,ARow+1]:='';
StringGrid1.Cells[ACol-1,ARow+1]:='';
StringGrid1.Cells[ACol-1,ARow]:='';
end;
end;
if (ACol=9) and (ARow=9) then
begin
if (StringGrid1.Cells[ACol,ARow-1]<>'') and
(StringGrid1.Cells[ACol-1,ARow-1]<>'') and
(StringGrid1.Cells[ACol-1,ARow]<>'') then
begin
StringGrid1.Cells[ACol,ARow]:=IntToStr(Random(5));
StringGrid1.Cells[ACol,ARow-1]:='';
StringGrid1.Cells[ACol-1,ARow-1]:='';
StringGrid1.Cells[ACol-1,ARow]:='';
end;
end;
if (ACol=0) and (ARow<9) and (ARow>0) then
begin
if (StringGrid1.Cells[ACol,ARow-1]<>'') and
(StringGrid1.Cells[ACol,ARow+1]<>'') and
(StringGrid1.Cells[ACol+1,ARow]<>'') and
(StringGrid1.Cells[ACol+1,ARow-1]<>'') and
(StringGrid1.Cells[ACol+1,ARow+1]<>'') then
begin
StringGrid1.Cells[ACol,ARow]:=inttostr(Random(5));
StringGrid1.Cells[ACol,ARow-1]:='';
StringGrid1.Cells[ACol,ARow+1]:='';
StringGrid1.Cells[ACol+1,ARow]:='';
StringGrid1.Cells[ACol+1,ARow-1]:='';
StringGrid1.Cells[ACol+1,ARow+1]:='';
end;
end;
if (ACol=9) and (ARow<9) and (ARow>0) then
begin
if (StringGrid1.Cells[ACol-1,ARow-1]<>'') and
(StringGrid1.Cells[ACol-1,ARow]<>'') and
(StringGrid1.Cells[ACol-1,ARow+1]<>'') and
(StringGrid1.Cells[ACol,ARow-1]<>'') and
(StringGrid1.Cells[ACol,ARow+1]<>'') then
begin
StringGrid1.Cells[ACol,ARow]:=inttostr(Random(5));
StringGrid1.Cells[ACol-1,ARow-1]:='';
StringGrid1.Cells[ACol-1,ARow]:='';
StringGrid1.Cells[ACol-1,ARow+1]:='';
StringGrid1.Cells[ACol,ARow-1]:='';
StringGrid1.Cells[ACol,ARow+1]:='';
end;
end;
if (ARow=0) then
begin
if (StringGrid1.Cells[ACol-1,ARow]<>'') and
(StringGrid1.Cells[ACol+1,ARow]<>'') and
(StringGrid1.Cells[ACol+1,ARow+1]<>'') and
(StringGrid1.Cells[ACol,ARow+1]<>'') and
(StringGrid1.Cells[ACol-1,ARow+1]<>'') then
begin
StringGrid1.Cells[ACol,ARow]:=inttostr(Random(5));
StringGrid1.Cells[ACol+1,ARow]:='';
StringGrid1.Cells[ACol-1,ARow]:='';
StringGrid1.Cells[ACol+1,ARow+1]:='';
StringGrid1.Cells[ACol,ARow+1]:='';
StringGrid1.Cells[ACol-1,ARow+1]:='';
end;
end;
if(ARow=9) then
begin
if (StringGrid1.Cells[ACol-1,ARow]<>'') and
(StringGrid1.Cells[ACol+1,ARow]<>'') and
(StringGrid1.Cells[ACol,ARow-1]<>'') and
(StringGrid1.Cells[ACol-1,ARow-1]<>'') and
(StringGrid1.Cells[ACol+1,ARow-1]<>'') then
begin
StringGrid1.Cells[ACol,ARow]:=inttostr(Random(5));
StringGrid1.Cells[ACol-1,ARow]:='';
StringGrid1.Cells[ACol+1,ARow]:='';
StringGrid1.Cells[ACol,ARow-1]:='';
StringGrid1.Cells[ACol-1,ARow-1]:='';
StringGrid1.Cells[ACol+1,ARow-1]:='';
end;
{repeat
ACol:=Random(10);
ARow:=Random(10);
until(ACol>0) and (ACol<9) and (ARow>0) and (ARow<9);}
end;
end;
end;
end;