Распространение гриппа

Привет=) Вот такая задача: на форме расположен StringGrid с размерами 9х9. На самом центре стоит точка - эта источник заражения(в нашем случае цифра "1", см. рис.1). Помимо таблицы есть и компонент Timer. Через 4 с. "болезнь" распространяется(см. рис.2), а старые точки исчезают(см. рис.3) и т.д. Перерыла форум, и там есть только примеры случайного заполнения StringGrid
3 ответа

у кого какие варианты? помогите пожалуйста:
procedure TForm1.FormCreate(Sender: TObject);
begin
sg.Cells[4, 4]:='1';
timer1.Enabled:=true;
timer2.Enabled:=true;
timer3.Enabled:=true;
timer4.Enabled:=true;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
sg.Cells[4, 3]:='0';
sg.Cells[4, 5]:='0';
sg.Cells[3, 4]:='0';
sg.Cells[5, 4]:='0';
end;
 
procedure TForm1.Timer2Timer(Sender: TObject);
begin
sg.Cells[2, 4]:='0';
sg.Cells[6, 4]:='0';
sg.Cells[4, 2]:='0';
sg.Cells[4, 6]:='0';
sg.Cells[3, 3]:='0';
sg.Cells[5, 5]:='0';
end;
 
procedure TForm1.Timer3Timer(Sender: TObject);
begin
sg.Cells[2, 3]:='0';
sg.Cells[2, 5]:='0';
sg.Cells[4, 7]:='0';
sg.Cells[5, 2]:='0';
sg.Cells[6, 3]:='0';
sg.Cells[7, 4]:='0';
end;
 
procedure TForm1.Timer4Timer(Sender: TObject);
begin
sg.Cells[1, 3]:='0';
sg.Cells[4, 5]:='0';
sg.Cells[4, 8]:='0';
sg.Cells[5, 5]:='0';
sg.Cells[6, 6]:='0';
sg.Cells[7, 6]:='0';
end;
вот что я наляпалапомогите пожалуйста:
procedure TForm1.FormCreate(Sender: TObject);
begin
sg.Cells[4, 4]:='1';
timer1.Enabled:=true;
timer2.Enabled:=true;
timer3.Enabled:=true;
timer4.Enabled:=true;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
sg.Cells[4, 3]:='0';
sg.Cells[4, 5]:='0';
sg.Cells[3, 4]:='0';
sg.Cells[5, 4]:='0';
end;
 
procedure TForm1.Timer2Timer(Sender: TObject);
begin
sg.Cells[2, 4]:='0';
sg.Cells[6, 4]:='0';
sg.Cells[4, 2]:='0';
sg.Cells[4, 6]:='0';
sg.Cells[3, 3]:='0';
sg.Cells[5, 5]:='0';
end;
 
procedure TForm1.Timer3Timer(Sender: TObject);
begin
sg.Cells[2, 3]:='0';
sg.Cells[2, 5]:='0';
sg.Cells[4, 7]:='0';
sg.Cells[5, 2]:='0';
sg.Cells[6, 3]:='0';
sg.Cells[7, 4]:='0';
end;
 
procedure TForm1.Timer4Timer(Sender: TObject);
begin
sg.Cells[1, 3]:='0';
sg.Cells[4, 5]:='0';
sg.Cells[4, 8]:='0';
sg.Cells[5, 5]:='0';
sg.Cells[6, 6]:='0';
sg.Cells[7, 6]:='0';
end;
вот что я наляпала


unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, ExtCtrls;
 
type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  x,y,z: integer;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  x := StringGrid1.ColCount div 2;
  y := StringGrid1.RowCount div 2;
  z := 1;
  StringGrid1.Cells[x,y] := '1';
  Timer1.Enabled := true;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
var
  i: integer;
begin
  if z > 1 then
  begin
    StringGrid1.Cols[x-z+1].Clear;
    StringGrid1.Cols[x+z-1].Clear;
    StringGrid1.Rows[x-z+1].Clear;
    StringGrid1.Rows[x+z-1].Clear;
  end;
 
  if z <= x then
  begin
  for i := -z to z do
  begin
    StringGrid1.Cells[x+i,y-z] := '0';
    StringGrid1.Cells[x+i,y+z] := '0';
  end;
  for i := -z+1 to z-1 do
  begin
    StringGrid1.Cells[x-z,y+i] := '0';
    StringGrid1.Cells[x+z,y+i] := '0';
  end;
  inc(z);
  end else
  begin
    z := 1;
    Timer1.Enabled := false;
    ShowMessage('Âñå Г§Г*Г°Г*çèëèñü!!!');
    Timer1.Enabled := true;;
  end;
end;
 
end.


уай спасибо=)