Сайт Романа ПарпалакаБлог20090913

The Game of Life 3.6 beta

13 сентября 2009 года, 19:28

Я нашел время и довел свою программу The Game of Life до состояния, которое можно опубликовать. Да и интерес к игре «Жизнь», судя по всему, не ослабевает. Итак, представляю новую версию The Game of Life 3.6 beta.

Что нового?

Системные требования

Особых системных требований у программы нет. Работает в операционных системах Windows 2000, XP, Vista, 7. Windows 9x из-за компиляции в Delphi 2010 больше не поддерживается.

Планы на будущее

Перед выпуском финальной версии 3.6 я хочу:

Если у меня останутся энтузиазм и время, то в версии 4.0 я полностью переделаю алгоритм расчетов (текущий я писал семь лет назад на ассемблере) и постараюсь избавиться от ограничений на размер поля.

Поделиться

Креатив так и прет Ctrl Умри, IE 6

Читайте также

Программы
The Game Of Life Реализация игры «Жизнь».

Комментарии

#1. 13 сентября 2009 года, 22:37. Сергей М. пишет:
999КБ — это мощно.

Всегда обожал эту игру, даже сам писал реализации.

Твоя — неплохая (хотя ту же скорость лучше, конечно, не задержкой выставлять, а временем, отведенным на каждый «ход»). Внедренная энциклопедия — тоже хорошо, хотя я в свое время хотел сделать полноценную библиотеку известных объектов с описаниями, разбитых по темам, для простой вставки на поле.

Ну и не сильно понимаю проблему избавиться от ограничений на размер поля.
#2. 13 сентября 2009 года, 23:24. пишет:
Про скорость логично, конечно. Хотя для небольших конфигураций время задержки и время на ход — почти одно и то же, а для больших, я думаю, уменьшать скорость не захочется.

По поводу ограничений на размер поля. В текущем алгоритме есть два списка: фишки и пустые клетки, на которых могут появиться фишки. Еще есть несколько вспомогательных списков, заполняемых при выполнении хода. Каждый раз для каждой фишки необходимо определять количество соседей. Для этого я использую двумерный массив 1000*1000, соответствующий полю. В текущей реализации алгоритма на ассемблере двумерный массив должен иметь фиксированную ширину (1000). Если ширина переменная, на нее уйдет регистр, которых всегда не хватает, либо увеличится количество обращений к памяти. Плюс еще один регистр либо одно обращение к памяти в теле цикла потратится в переходе от статического массива к динамическому на хранение указателя на начало массива (подробнее об этом эффекте здесь: http://written.ru/articles/technologies/pr … tic_arrays).

Единственное, что я могу сделать — увеличить размер поля, например, до 2000*2000. В общем, гораздо проще придумать новый алгоритм, чтобы он не использовал двумерных массивов.
#3. 14 сентября 2009 года, 17:40. пишет:
Да куда идет расход процессорного времени — это понятно. Вот у меня статья уже пять лет в корне лежит :) http://www.mathnet.ru/php/getFT.phtml?jrni … n_lang=rus

Почти столько же я хардкорным программированеим не занимался, поэтому у меня в голове крутится одна сумасшедшая мысль, но это вообще идиотизм, я не буду ее озвучивать :)

Оставьте свой комментарий


Формулы на латехе: $$f(x) = x^2-\sqrt{x}$$ превратится в $$f(x) = x^2-\sqrt{x}$$.
Выделение текста: [i]курсивом[/i] или [b]жирным[/b].
Цитату оформляйте так: [q = имя автора]цитата[/q] или [q]еще цитата[/q].
Других команд или HTML-тегов здесь нет.

Записи