|
Игра Жизнь |
☑ |
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) Почему? Очень даже любопыткая статейка.
Вернее не сама игра, а вот эта
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший