|
Игра Жизнь | ☑ | ||
---|---|---|---|---|
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/ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |