Форум: "Основная";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];
ВнизТраблы с фор ду или с руками. Найти похожие ветки
← →
GrYRI (2003-11-14 15:06) [0]
unit Life;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
procedure FormClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
a: array[0..100,0..100,0..1] of byte;
b: array[0..100,0..100,0..1] of byte;
n:byte;
implementation
{$R *.DFM}
{procedure init;
var i,j:byte;
begin
randomize;
for i:=1 to n do
for j:=1 to n do
a[i,j]:=random(2);
end;
procedure prlife;
var i,j,s:byte;
begin
s:=0;
for i:=1 to n do
for j:=1 to n do
begin
s:=s+a[i,j];
s:=s+a[i+1,j];
s:=s+a[i+2,j];
s:=s+a[i,j+1];
s:=s+a[i+2,j+1];
s:=s+a[i,j+2];
s:=s+a[i+1,j+2];
s:=s+a[i+2,j+2];
if b[i+1,j+1]<>2 then
if s>=5 then b[i+1,j+1]:=1
else b[i+1,j+1]:=2
else b[i+1,j+1]:=0;
s:=0;
end;
for i:=1 to n do
for j:=1 to n do
a[i,j]:=b[i,j];
end;
procedure paint1;
var i,j:byte;cx,cy:word;
begin
cx:=0;
With Form1 do
begin
refresh;
for i:=1 to n do
begin
cx:=cx+5;
cy:=0;
for j:=1 to n do
begin
cy:=cy+5;
if a[i,j]=0 then Canvas.brush.color := clblack
else Canvas.brush.color := clRed;
Canvas.Ellipse(cx,cy,cx+5,cy+5);
end;
end;
end;
end;}
procedure TForm1.FormClick(Sender: TObject);
var ip,jp,il,jl,s,k,ir,jr:longint;
begin
//for k:=1 to 50 do
//begin
refresh;
for ip:=1 to 100 do
begin
for jp:=1 to 100 do
begin
if a[ip,jp,0]=0 then Canvas.brush.color := clblack
else Canvas.brush.color := clRed;
Canvas.Ellipse(ip*5,jp*5,ip*5+5,jp*5+5);
end;
end;
s:=0;
for il:=0 to 100 do
for jl:=0 to 100 do
begin
s:=s+a[il,jl,0];
s:=s+a[il+1,jl,0];
s:=s+a[il+2,jl,0];
s:=s+a[il,jl+1,0];
s:=s+a[il+2,jl+1,0];
s:=s+a[il,jl+2,0];
s:=s+a[il+1,jl+2,0];
s:=s+a[il+2,jl+2,0];
if s>=6 then b[il+1,jl+1,0]:=1;
if s=2 then
if a[il+1,jl+1,0]=1 then
begin
b[il+1,jl+1,1]:=1;
b[il+1,jl+1,0]:=1;
end
else b[il+1,jl+1,0]:=0;
if s<2 then b[il+1,jl+1,0]:=0;
if a[il+1,jl+1,1]=1 then
begin
b[il+1,jl+1,0]:=0;
b[il+1,jl+1,1]:=0;
end;
s:=0;
end;
for ir:=1 to 100 do
for jr:=1 to 100 do
begin
a[ir,jr,0]:=b[ir,jr,0];
a[ir,jr,1]:=b[ir,jr,1];
end;
//sleep(100);
//end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var i,j:byte;
begin
randomize;
for i:=1 to 100 do
for j:=1 to 100 do
begin
a[i,j,0]:=random(2);
if a[i,j,0]=1 then a[i,j,1]:=random(2);
end;
{a[50,50,0]:=1;
a[51,51,0]:=1;
a[50,51,0]:=1;
a[51,50,0]:=1;
a[52,52,0]:=1;
{a[52,53,0]:=1;
a[53,52,0]:=1;
a[52,51,0]:=1;}
end;
end.
← →
Palladin (2003-11-14 15:10) [1]И что это?
← →
dataMaster (2003-11-14 15:13) [2]>Palladin
Насколько я понял, игру человек пишет. "Жизнь" называется... :-)
← →
Palladin (2003-11-14 15:14) [3]:)
Ну тогда: И что с ней?
← →
Silver Alex (2003-11-14 15:15) [4]в натуре прикольно :))
← →
GrYRI (2003-11-14 15:33) [5]Проблемы с циклом фор ду в проседуре форм клик
for il:=0 to 100 do
for jl:=0 to 100 do
с этого места цикл работает так jl= 101 100 99 98
проблема только в этом а если менять значение s=>6 то можно наблюдать как умирает и т.д. но еще есть не оттебагеренные траблы
← →
dataMaster (2003-11-14 15:47) [6]Может надо массив(ы) объявить до 101 элемента?
var
Form1: TForm1;
a: array[0.. 101,0.. 101,0..1] of byte;
b: array[0.. 101,0.. 100,0..1] of byte;
n:byte;
← →
GrYRI (2003-11-14 15:48) [7]Удалено модератором
← →
esVer (2003-11-14 15:59) [8]Удалено модератором
← →
GrYRI (2003-11-14 16:02) [9]И что делать?
← →
Anatoly Podgoretsky (2003-11-14 16:15) [10]Работает неправильно?
← →
GrYRI (2003-11-14 16:16) [11]вообще да
← →
Anatoly Podgoretsky (2003-11-14 16:21) [12]Тогда в чем неправильность проявляется?
← →
GrYRI (2003-11-14 16:23) [13]Если менять значения С управляем в сторону живучести или умирания, то при С>=6 сеть должна умирать полностью а есть живущие островки
← →
GrYRI (2003-11-14 16:27) [14]Да и вообще это не порядок я хочу управлять процессом а не как дельфи захочет, для отсчета в обр сторону есть даунто, и еслиб надо было я воспользовался а она мне свое сунет, как мне определить когда цикл нормально работает а когда оптимизатор включаеться или еэто зависит от параметров рандома?
← →
panov (2003-11-14 16:32) [15]>GrYRI ©
Вопросы оформляй нормально. Здесь что, клуб телепатов?
← →
GrYRI (2003-11-14 16:34) [16]Удалено модератором
Примечание: 1 неделя RO
← →
GrYRI (2003-11-14 16:35) [17]Удалено модератором
← →
Arm79 (2003-11-14 16:57) [18]А нельзя просто отключить оптимизатор?
← →
panov (2003-11-14 17:10) [19]>Arm79 © (14.11.03 16:57) [18]
А нельзя просто отключить оптимизатор?
Можно, но автор сможет ответить только через неделю.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.01 c