|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.05.2013, 18:52 | #11 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,318
|
Зачем Вы оставили такой сложный if?
Достаточно: Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
30.05.2013, 19:01 | #12 |
Пользователь
Регистрация: 05.12.2012
Сообщений: 63
|
|
31.05.2013, 08:46 | #13 | |||||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,527
|
Цитата:
Цитата:
map1 стал указывать на map2 Цитата:
Адреса массивов (память на которую они указывают две разных переменных) одинаковые. showmessage(Format('%p %p', [@map1[0,0], @map2[0,0]])); Цитата:
Цитата:
тем не менее ошибка все равно там. поскольку у нас массив объектов Tkletka. (то бишь указателей) Код:
надо Код:
Дальше только для любознательности как можно модифицировать 1. другой "способ" копирования данных при желании можно использовать prTkletka.Asiign(a: Tkletka); 2. отказ о копирования для исключения операций копирования можно в каждой клетке(Tkletka) иметь два состояния Код:
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 31.05.2013 в 09:39. |
|||||
31.05.2013, 21:19 | #14 |
Пользователь
Регистрация: 05.12.2012
Сообщений: 63
|
реализовал смену поколений через поток(в образовательных целях). Но этот поток делает всего один цикл(т.е один шаг в смене поколений). Как добиться непрерывной смены поколений(пока не нажата кнопка)? Повесить на таймер проверку не запущен ли поток и если не запущен, то запускать? Или есть способы получше?
|
31.05.2013, 21:38 | #15 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,318
|
Наверное, лучше сделать в потоке бесконечный цикл с паузой на 1 секунду, например, между каждым поколением. Кнопка запускает или приостанавливает поток.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
31.05.2013, 22:20 | #16 | |
Пользователь
Регистрация: 05.12.2012
Сообщений: 63
|
Цитата:
Код:
|
|
31.05.2013, 22:29 | #17 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,318
|
Так у Вас поток в потоке.
Я бы сделал 1 поток, в котором исполняется процедура "цикл". При этом происходит замер времени выполнения. Затем делается пауза на столько миллисекунд, сколько осталось от Form1.TrackBar1.Position - "время выполнения". Если число отрицательное, то паузы вообще не делать. Хотя мне трудно представить, что поток не успевает выполниться. Создание потока - дорогая операция, так что лучше оставьте только 1 поток. Примерно: Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 31.05.2013 в 22:33. |
31.05.2013, 22:50 | #18 | |
Пользователь
Регистрация: 05.12.2012
Сообщений: 63
|
Цитата:
Код:
остался вопрос: как корректно завершать программу? Код:
|
|
31.05.2013, 23:02 | #19 |
Пользователь
Регистрация: 05.12.2012
Сообщений: 63
|
вот так заработало
Код:
|
03.06.2013, 16:21 | #20 |
Пользователь
Регистрация: 05.12.2012
Сообщений: 63
|
доброго дня
продолжаю данную тему имеется два массива-карты map1 и map2(текущее поколение и следующее), содержащие объекты Tkletka, со свойством life : boolean. Вопрос: как реализовать эти карты в виде поверхности тора? Т.е. низ склеить с верхом, правый край - с левым? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Игра жизнь | Fi11eR | Общие вопросы C/C++ | 8 | 22.05.2014 16:52 |
Игра Жизнь | gusluk | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 17 | 24.05.2012 15:58 |
Клеточный автомат (Игра Жизнь) в Delphi | nitroes | Фриланс | 4 | 12.03.2012 13:11 |
Игра Жизнь | VovanZ | Софт | 14 | 02.02.2010 16:46 |