unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Panel4Click(Sender: TObject);
procedure Panel1Click(Sender: TObject);
procedure Panel2Click(Sender: TObject);
procedure Panel3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
const n=50;
var p:array[1..n,1..n]of tpanel;
procedure TForm1.FormCreate(Sender: TObject);
var t,c,i,k:integer;
begin
for i:=1 to n do
for k:=1 to n do begin
p[i,k]:=tpanel.Create(form1);
p[i,k].Left:=58+k*5;
p[i,k].Top:=46+i*5;
p[i,k].Width:=5;
p[i,k].Height:=5;
p[i,k].Color:=c;
p[i,k].Parent:=form1;
end;
end;
procedure prov;
var t,c:integer;
Begin
case t of
0..100:c:=clblue;
101..200:c:=clTeal;
201..300:c:=clskyblue;
301..400:c:=claqua;
401..500:c:=cllime;
501..600:c:=clpurple;
601..700:c:=clfuchsia;
701..800:c:=clred;
end;
end;
procedure TForm1.Panel4Click(Sender: TObject);
var t,t1,c:integer;
begin
t:=random(801);t1:=t;
prov;
panel1.Color:=c;
end;
procedure TForm1.Panel1Click(Sender: TObject);
var t,t2,c:integer;
begin
t:=random(801);t2:=t;
prov;
panel2.Color:=c;
end;
procedure TForm1.Panel2Click(Sender: TObject);
var t,t3,c:integer;
begin
t:=random(801);t3:=t;
prov;
panel3.Color:=c;
end;
procedure TForm1.Panel3Click(Sender: TObject);
var t,t4,c:integer;
begin
t:=random(801);t4:=t;
prov;
panel4.Color:=c;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var i,k:integer;
a:array[0..1,0..n+1,0..n+1]of integer;
begin
for i:=1 to n do
for k:=1 to n do begin
t:=round((a[l,i-1,k]+a[l,i,k-1]+a[l,i,k+1]+a[l,i+1,k])/4);
a[1-l,i,k]:=t; prov; p[i,k].Color:=c;
end;
l:=1-l;
end;
if timer1.Enabled=false then begin
timer1.Enabled:=true; button1.Caption:='Stop';
end
else begin
timer1.Enabled:=false; button1.Caption:='Start';
end;
end.