Показать сообщение отдельно
  #6  
Старый 18.04.2014, 12:08
draginimp draginimp вне форума
Прохожий
 
Регистрация: 02.04.2014
Сообщения: 37
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var x,y, xi,yi,i,p :integer;
    c: boolean;
begin
i:=0;
repeat
c:=false;
P:=10;  // Размер грида
x:=random(p-1);
Y:=random(p-1);
for xi:=-1 to  1 do
for yi:=-1 to  1 do
if (x+xi>=0) and (y+yi>=0)and (x+xi<p) and (y+yi<p) then
if stringgrid1.Cells[x+xi,y+yi]<>''   then c:=true;   //проверяем пустое поле
if c = false then  stringgrid1.Cells[x,y]:='1';// если пустое вписываем 1
if c = false then  inc(i);// считаю кол-во заполненных 
until (I=10);
end;
Еще неплохо бы написать проверку свободных мест, то есть если свободные места заканчиваются выдавать мессадж. А то программа войдет в бесконечный цикл.
Надеюсь помог.
Ответить с цитированием