Игра "Жизнь" | |
---|---|
AnatolyS Автор Сообщений: 4565 Откуда: Санкт-Петербург Дата регистрации: 21.01.2002 |
Правила (ru.wikipedia.org):
1) Соседями клетки считаются все клетки, находящиеся в восьми ячейках, располженных рядом с данной по горизонтали, вертикали или диагонали 2) Если у некоторой клетки меньше двух соседей, она погибает от одиночества. Если клетка имеет больше трех соседей, она погибает от тесноты 3) Если рядом с пустой ячейкой окажется ровно три соседние клетки жизни, то в этой ячейке рождается новая клетка 4) Гибель и рождение происходят в момент смены поколений. Таким образом, гибнущая клетка может способствовать рождению новой, но рождающаяся клетка, уменьшив локальную плотность населения, не может предотвратить гибель другой Есть предложение провести конкурс на самое элегантное решение на фоксе. Думаю, графика не обязательна, хотя не запрещается. ------------------ Мы будем ждать пока не кончится время И встретимся после конца (с) A Исправлено 1 раз(а). Последнее : AnatolyS, 05.02.08 12:10 |
Re: Игра "Жизнь" | |
---|---|
Prudivus Сообщений: 4283 Откуда: Кишинев Дата регистрации: 14.12.2006 |
Лет двадцать назад издавалась книжка Гарднера (одна из), где описывалась в том числе и эта игра. При определенных условиях там может действительно возникнуть что-то жизнеобразное: самодвижущиеся структуры, поглощающие другие, более мелкие или статичные структуры...
|
Re: Игра "Жизнь" | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
Все равно в условия не въехал - и плодится и тут же умирает
Это как в анекдоте - Вовчка что делают амебы после того как делятся ? - Одна из них поворачивается на бок и храпит Объясните ТЗ на пальцах а посмотрим - если то что я сразу представил в голове, будет жизнеспособным и элегантным - то покажу, если нет - тогда просто промолчу ------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: Игра "Жизнь" | |
---|---|
AnatolyS Автор Сообщений: 4565 Откуда: Санкт-Петербург Дата регистрации: 21.01.2002 |
Демонстрация как это должно работать: www.math.com ------------------ Мы будем ждать пока не кончится время И встретимся после конца (с) A |
Re: Игра "Жизнь" | |
---|---|
leonid Сообщений: 3202 Откуда: Рига Дата регистрации: 03.02.2006 |
На фоксе главная трудность будет - бесконечный размер доски. Предлагаю его ограничить, скажем 50 х 50. А чтобы было интересней, зациклить доску, т.е. считать самую левую точку в строке и самую правую соседями, а также самую верхнюю и самую нижнюю. Тогда эту игру можно будет назвать "Жизнь на торе".
|
Re: Игра "Жизнь" | |
---|---|
AnatolyS Автор Сообщений: 4565 Откуда: Санкт-Петербург Дата регистрации: 21.01.2002 |
Давайте условно беспонечный - размерность integer. 50x50 - очень маленькое поле. ------------------ Мы будем ждать пока не кончится время И встретимся после конца (с) A Исправлено 1 раз(а). Последнее : AnatolyS, 05.02.08 13:57 |
Re: Игра "Жизнь" | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
Вообще-то размер доски в фоксе будет ограничем размером DBF или размером оперативки, в зависимости от алгоритма
------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: Игра "Жизнь" | |
---|---|
leonid Сообщений: 3202 Откуда: Рига Дата регистрации: 03.02.2006 |
Если держать поле в массивах, то ничего фоксовского в таком алгоритме не будет - в точности то же, что и в других языках. А это не интересно, поскольку алгоритмы давно опубликованы. Интересно, если поле запихнуть в dbf-ник. Тогда можно будет использовать фоксовский SQL. Но для этого поле не должно быть очень большим. А зацикливание создает эмуляцию бесконечного поля.
|
Re: Игра "Жизнь" | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
Можне перебирать несколько табл одного формата - тогда скока места на диске хватит
Цитата:Как раз сперва я подумал об коллекции объектов - а не о массиве ------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: Игра "Жизнь" | |
---|---|
AnatolyS Автор Сообщений: 4565 Откуда: Санкт-Петербург Дата регистрации: 21.01.2002 |
Задача не запрограммировать уже опубликованный аглоритм, а решить эту задачу средствами фокса, не читая опубликованных алгоритмов. А запрограммировать то, что кто-то написал - это как-то не по джентельменски. ------------------ Мы будем ждать пока не кончится время И встретимся после конца (с) A |
Re: Игра "Жизнь" | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Лисапед изобретать? Не интересно. Вот если почитать опубликованное (ну хотя-бы то что на первой странице гугла находится) и сделать КАРДИНАЛЬНО отличающийся алгоритм (не модификацию типа - у них по строкам и столбцам а у меня по столбцам и строкам - вот и всё новизна - тогда да, может быть какой-то интерес...
------------------ WBR, Igor |
Re: Игра "Жизнь" | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
Это не интересно тем кто этот алгоритм знает, а я например нет.
Хотел построить модель "жизни" на объектах с использованием неявных циклов, при этом в программе хранится только инфа о "живых" клетах, остальное нас не интересует. Но встали подводные камни, в виде полной деградации скорости. Вот код примерный без логики игры, но использования неявного цикла SetAll
Вариант №2 - когда все инфа по "живым" клеткам хранится в курсоре, быстро, но мне менее интересно ------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: Игра "Жизнь" | |
---|---|
leonid Сообщений: 3202 Откуда: Рига Дата регистрации: 03.02.2006 |
У меня такой вариант получился
(В зависимости от версии фокса надо Doevents или Doeventd force использовать)
|
Re: Игра "Жизнь" | |
---|---|
AnatolyS Автор Сообщений: 4565 Откуда: Санкт-Петербург Дата регистрации: 21.01.2002 |
Хорошое решение, но все равно вы привязались к конкретному размеру поля [-200, 200]x[-200, 200].
Если ввести вспомогательную таблицу:
Можно обойтись без поиска максимумов и без таблицы n1. Например, все соседи существующих клеток (включая и ныне живущих):
Ну, а дальше без труда можно завершить начатое Спасибо! ------------------ Мы будем ждать пока не кончится время И встретимся после конца (с) A Исправлено 3 раз(а). Последнее : AnatolyS, 08.02.08 14:07 |
Re: Игра "Жизнь" | |
---|---|
leonid Сообщений: 3202 Откуда: Рига Дата регистрации: 03.02.2006 |
Да, так действительно получше будет. Вот новый вариант
|
Re: Игра "Жизнь" | |
---|---|
Sergio Сообщений: 438 Откуда: Донецк Дата регистрации: 16.06.2005 |
А я эту игру запрограммировал ещё на БК 0010-01 в школе ))))) Я круто писал на Бейсик_Вильнюс )))))
Полем для точек были пиксели монитора - телевизор Электроника 404 вроде ))) Хаааарошая машина была - БК 0010-01 ))) Бейсик_Вильнюс Вроде занимал 28 Кб ПЗУ. А ОЗУ вроде был 16 Кб. В общем, память как у Буратино. Может, помнит кто этот суперкомпьютер? ))) Ну не могу удержаться от улыбки. ))) ДА! А ещё до БК-шки у меня был другой суперкомпьютер - ПМК - МК-61 ))) Исправлено 3 раз(а). Последнее : Sergio, 06.06.08 14:25 |
Re: Игра "Жизнь" | |
---|---|
sphinx Сообщений: 31166 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Полет на Луну на МК-61 программировал? Или что-то подобное...
------------------ "Veni, vidi, vici!"(с) |
Re: Игра "Жизнь" | |
---|---|
Sergio Сообщений: 438 Откуда: Донецк Дата регистрации: 16.06.2005 |
Да, и вообще все игры из "Техника-Молодёжи" и "Наука и жизнь" ))) Типа "Охота на лис", лабиринт ... |
© 2000-2024 Fox Club  |