Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.24;
Скачать: CL | DM;

Вниз

Траблы с фор ду или с руками.   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.027 c
14-79144
MonStar
2003-10-31 10:08
2003.11.24
Помогите: кто будучи студентом писал диплом на DELPHI?


6-79074
oduvan
2003-09-26 17:02
2003.11.24
Помогите с UDP (indy)


6-79082
Sergioly
2003-09-28 03:02
2003.11.24
Как осуществить копирование файлов с другого компьютера?


6-79083
Barmutik
2003-08-17 12:46
2003.11.24
WebBrowser + AutoComplete имена пользователей и пароли


1-79025
Jiurasdg45
2003-11-13 22:14
2003.11.24
А как сделать прокручиваемую картинку?