«Клеточный автомат на DELPHI 7» на C#, C++, VB перепишу быстро



Простейший код… и правила перехода...

1. Если в текущий дискретный момент времени базовая клетка активна, и ровно 2 или 3 любые клетки окружения также активны, то в следующий дискретный момент времени базовая клетка остается активной, в противном случае она становится не активной
2. Если в текущий дискретный момент времени базовая клетка неактивна, она становится активной только тогда, когда все клетки её окружения являются активными, в противном случае она остается неактивной


Клеточнй автомат на DELPHI 7

                   Рис.1       Клеточнй автомат, как игра Жизнь

Данная программа позволяет моделировать изменение состояния популяции в цикле (по времени) методом изменения правил перехода клеток автомата….
Но для конкретно этого задания правила уже определены... Их и реализуем...

Поскольку однотипных объектов "Клетка" очень много, то для реализации функциональности программы объявляю класс:

//------------------------------
TKlet = class
private { Private declarations }
     curval, newval: integer; //поля со значениями 0 или 1
public { Public declarations }
     constructor Create;
     function GetVal:integer;
     procedure Sinhro; //перед визуализацией curval,newval синхронизируются
     procedure NewSost(v1,v2,v3,v4:integer);//новое значение пишется в newval по значениям из curval
end;
//------------------------------

Получить значения параметров перед вызовом метода NewSost(v1,v2,v3,v4:integer); можно методом GetVal класса TAutomat:

v1:= GetVal(i,j-1);//верхний сосед
v2:= GetVal(i+1,j);//правый сосед
v3:= GetVal(i,j+1);//нижний сосед
v4:= GetVal(i-1,j);//левый сосед

В данный метод передаются только влияющие параметры (значения curval четырех главных соседей - т.е. соседних клеток сверху, снизу, справа, слева)

//------------------------------
procedure TKlet.NewSost(v1,v2,v3,v4:integer);//новое значение пишется в newval
var sum:integer;
begin
sum:=v1+v2+v3+v4;
if (curval=1) then // если клетка уже активна
     begin
         if (sum=2) or (sum=3) then newval:=1 //если 2 или 3 соседа активны
         else newval:=0;
     end
else // (curval=0) не активна
     begin
         if (sum=4) then newval:=1 //если все соседи активны
         else newval:=0;
     end;
end;
//------------------------------

В случае изменения правил, корректировать придется только эту процедуру...

Скачать ехе-файл для тестирования…



Условия получения кода?    Показать?


Еще есть Клеточный автомат на VBA Excel Модель лесного пожара

И клеточный автомат для маркетинговых исследований распространения на рынке двух товаров, отличающихся ценой и качеством. Изменяя параметры, можно видеть, как один товар вытесняется с рынка другим... с различной скоростью...

Другие примеры на языках «C»,«C++»,«C#»

Другие примеры на языке «Delphi»




Если на этой странице не нашлось того, что Вы так искали...

         Не расстраивайтесь, не все потеряно... Смело щелкайте...

исходный код на заказ. orenstudent.ru Автоматизация документов MS Office. orenstudent.ru исходный код на заказ. orenstudent.ru Помогите найти и устранить ошибку в исходном коде программы. orenstudent.ru Skype-консультирование по программированию
Скайп-консультации

Акция !!!
Весь код по 49 руб


Не попадайтесь на удочку мошенников-кидал... требуются
школьники!


и СТУДЕНТЫ!
Кому не плевать
на деньги!
Сайт помощи студентам по программированию и информатике

Program code