Имя: Пароль:
IT
 
Игра Жизнь
0 mandarinka
 
30.03.15
19:29
Добрый вечер! Необходимо реализовать алгоритм похожий на клеточный автомат Жизнь. Есть клеточное поле в произвольной клетке появляется микроорганизм (1), каждый день микроорганизм делится на 2, если у микроорганизма 8 смежных соседей то он погибает (0). Делаю двумерный массив, random заполняет произвольную клетку. Вопрос как запомнить в какой клетке есть уже организм т.к размер поля заранее не известен?
1 Злопчинский
 
30.03.15
19:35
начальная точка в которой стартует игра - есть начало отсчета. далее - смещением по ху от точки отсчета
2 mandarinka
 
30.03.15
19:39
это я понимаю но с каждым днем размножается не только начальная клетка но и те клетки которые уже появились т.е их адреса надо где-то хранить чтобы проверять вокруг них пусто или нет и опять их размножать
3 Котокот
 
30.03.15
19:39
После (1) тему можно закрывать.
4 mandarinka
 
30.03.15
19:42
repeat
if ((i-1)<>0) and ((j-1)<>0) then c:= a[i-1,j-1]+a[i-1,j]+a[i-1,j+1]+a[i+1,j-1]+a[i+1,j]+a[i+1,j+1]+a[i,j+1]+a[i,j-1];
If (a[i, j] = 1) And (c =8) Then a[i, j]:= 0;
if a[k1, k2] = 1 then
begin
rep: K1 := Random(k1+1)+k1-1;
K2 := Random(k2+1) + k2-1;
if A[k1, k2]=0 then
A[k1, k2] := 1
else goto rep;
end;
i:=i+1; j:=j+1; c:=0;
until (i=int(d)) and (j=int(d));
for i:=1 to k+1 do
begin
for j:=1 to k+1 do
st.Cells[i,j]:= inttostr(a[i,j]);
end;
5 mandarinka
 
30.03.15
19:42
пыталась заполнить случайным образом проверяя  наличие пустых клеток, но не работает
6 Lama12
 
30.03.15
20:03
(0) Есть старая старая книжка - 128 советов начинающему программисту. Там эта игра на бейсике написана.
7 mandarinka
 
30.03.15
20:08
попробую поискать. спасибо за совет
8 Dorzh
 
30.03.15
20:19
9 mandarinka
 
30.03.15
20:24
спасибо
10 Asmody
 
30.03.15
20:25
(8) Изверг! Нельзя такие вещи на неокрепший мозг выдавливать!
11 ЧеловекДуши
 
02.04.15
15:59
(10) Почему? Очень даже любопыткая статейка.
Вернее не сама игра, а вот эта http://infostart.ru/public/90367/
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.