IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> реализация игры жизнь.
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Женский
Реальное имя: Aljona

Репутация: -  0  +


Существует простая и интересная игра Жизнь. Помогите написать простую реализацию с использованием двух массивов, всю ночь сидела, ничего не вышло.
Напомним правила игры "Жизнь". На клетчатом листе стоит несколько фишек. Их расположение во всех клетках одновременно меняется следующим образом. Если в клетках, соседних с данной (по стороне или углу), стоит ровно 3 фишки, то в данную клетку ставится фишка (если ее не было). Если в соседних клетках более 3 или менее 2 фишек, то фишка снимается (если она была). Если в соседних клетках ровно 2 фишки, то состояние клетки не меняется.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


здесь есть программа


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 2
Пол: Женский
Реальное имя: Aljona

Репутация: -  0  +


а вы не могли бы в скобках объяснения процедур написать, а то многие неясны, а с пояснениями было бы проще разобраться, заранее благодарю вас.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Aljona @ 15.04.2006 20:01) *

Помогите написать простую реализацию с использованием двух массивов, всю ночь сидела, ничего не вышло.

Aljona, я с удовольствием помогу тебе - очень люблю Жизнь (во всех смыслах smile.gif ).
Ты покажи тут результат(ы) своих ночных бдений, и мы найдем ошибки или подумаем, как двигаться вперед.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 1
Пол: Мужской

Репутация: -  0  +


вот что у меня получилось Прикрепленный файл  RUSH_LIFE.PAS ( 3.97 килобайт ) Кол-во скачиваний: 527


вот нашел еще один вариант реализации, кто нибудь может мне объяснить как она работает, какие процедуры что выполняют, очень надо, плиз Прикрепленный файл  TVLIFE.PAS ( 10.93 килобайт ) Кол-во скачиваний: 480


Сообщение отредактировано: Rush_ -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


студент..
***

Группа: Пользователи
Сообщений: 287
Пол: Мужской
Реальное имя: Дмитрий

Репутация: -  2  +


Снова таже самая жизнь.
Помогите разобраться с небольшим кусокм проги, не хочет правильно обработать.

function sosedi (m,n:byte):byte;
var im,ip,jm,jp:byte;
begin
im:=m-1;
ip:=m+1;
jm:=n-1;
jp:=n+1;
if im=0 then im:=m;
if ip=m then ip:=0;
if jm=0 then jm:=n;
if jp=n then jp:=0;
sosedi:=a[m,jm]+a[m,jp]+a[ip,n]+a[ip,jm]+a[ip,jp]+a[im,jp]+a[im,jm]+a[im,n];
end;


При подсчете соседей для крайних справа и снизу клеток он выводит числа превышающие 8.. Например, 218.. В чем ошибка?


--------------------
После дождя обязательно выглянет солнце)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Цитата
В чем ошибка?
Range-Check отключен? Вот результат... Был выход за пределы матрицы, и не пойман...

У тебя матрица A описана как [1 .. size, 1 .. size] или [0 .. size-1, 0 .. size-1]? Я к тому, почему ты в одном случае от нуля избавляешься:
  if im=0 then im:=m; { <--- Здесь, например }

а в другом - приравниваешь к нулю:
  if ip=m then ip:=0; { <--- Вот тут }

?

Лучше бы вот так делать (для случая, если матрица индексирована от ЕДИНИЦЫ):
  im:=m-1;
if im=0 then im:=m;
ip:=m+1;
if ip>size then ip:=1; { <--- size - размер матрицы }
jm:=n-1;
if jm=0 then jm:=size; { <--- size - размер матрицы }
jp:=n+1;
if jp>size then jp:=1;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


студент..
***

Группа: Пользователи
Сообщений: 287
Пол: Мужской
Реальное имя: Дмитрий

Репутация: -  2  +


Все, я разобрался! Матрица была от единицы. Теперь все нормально работает. Спасибо! smile.gif


Добавлено через 5 мин.
Еще вопрос! А как реализовать эту игру графически? Совсем не знаю как работает графика в Паскале. sad.gif


--------------------
После дождя обязательно выглянет солнце)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 28.06.2017 2:12
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"