![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 24.04.2012
Сообщений: 70
|
![]()
Здравствуйте. Прошу у кого есть статью где более подробно описывается, как в Делфи создаются объекты, уничтожаются, и могут производить какие-то действия. Элементарно для примера: На поле создались 3 барана (2 муж. 1 женщ.), ходят кушают, 2 барана (М) встретились, один другого забодал, Встретился с бараном-женщиной - родился еще один барашка))
Просто у меня голова работает в определенном направлении, могу работать с тем, что забито в константы и переменные. P.S. Даже не надо про создание и уничтожение, нужнее будет, как сделать, чтобы все объекты сами управлялись (производили действия) Последний раз редактировалось gromdel; 24.04.2012 в 18:49. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 216
|
![]() |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 24.04.2012
Сообщений: 70
|
![]()
Это даже из этой приведенной задачи. Существует 50 объектов барашков, как их контролировать и чтобы они сами производили действия. 35-й баран встретил 43-его. Подрались. 2-ой уперся в стену и повернулся, 15-й и 10-й родили барашка под номером 51. И уже барашков 51. И каждый сам что-то делает в зависимости от ситуации (уперся в стену, встретил противоположный пол, встретил однополого, встретил врага.)
НУ с барашками я утрирую, просто для примера. Чтобы действия были в запрограммированы (функции) и уже каждый объект выбирал сам для себя действие в зависимости от ситуации. |
![]() |
![]() |
![]() |
#4 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
![]()
1. Движение баранов организовать с помощью Random().
2. При встрече баранов написать процедуру-селектор действия (другой процедуры) взависимости от пола баранов.
"ковыряю изнутри" (с)
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
ОФФТОП: В Вашей проге будут утечки памяти потому что модель некорректна. Как это барашки только кушают? Они должны бесконечно раздуваться и рано или поздно вызовут переполнение стека. Бараний горох обязательно должен быть - это как две стороны одной медали (между прочим намек на правильное использование объектов)- рождение и смерть предусмотрены, а где антипод питанию?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 24.04.2012 в 22:38. |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
gromdel, а ты понятие "объект" в каком смысле используешь?
Барашков можно сделать отдельным объектом в смысле ООП, да. И каждый из них будет "сам производить действия". Вот только на практике это не очень удачная модель. Поскольку тезис "сам производит действие" предполагает, что за каждым барашком закреплён поток, который и выполняет (в фоне) "самостоятельные действия", независимо друг от друга. Обычно имеет смысл ввести объект-контроллер, который будет заниматься управлением барашками. Пусть барашек - это объект. Тогда при создании барашка он должен зарегистрировать себя в объекте-контроллере. При удалении, соответственно - изъять. Контроллер может иметь метод "обновить состояние мира", в котором он в цикле проходит по всем барашкам (да и не барашкам тоже) и вызывает их метод "выполнить якобы самостоятельные действия". При этом каждый объект в своей процедуре обновления состояния может запросить у контроллера, скажем, своих соседей. Если таковые есть - то опредеить их тип или свойства. И в зависимости от этого произвести какие-то действия (сожрать траву, родить барашка и т.п.).
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 24.04.2012
Сообщений: 70
|
![]()
GunSmoker спасибо за небольшое разъяснение, Человек_Борща спасибо за исходник.
Объект в любом его понимании. Ну допустим это картинка. Тут все около ответа ходили, допустим массив баранов есть, как их прогнать, чтобы допустим за один ход, или за одно действия таймера, каждый баран проделал действие.? На счет переполнения карты, естественно это думать надо что убить надо, или умрет сам. |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
я скинул ссылку на исходник, там и смотрите как работает пара тысяч баранов, как они работаю вместе, обходят друг друга, и ищут муравейник.
|
![]() |
![]() |
![]() |
#10 | ||
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
Цитата:
![]()
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 25.04.2012 в 13:26. |
||
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Уничтожение формы | chandrasecar | Общие вопросы Delphi | 26 | 22.07.2013 22:55 |
Создание и уничтожение объектов. Время жизни объектов C++/C# | Anett// | Помощь студентам | 0 | 24.10.2011 23:26 |
Динамичесоке создание и уничтожение формы | SERG1980 | Общие вопросы Delphi | 3 | 26.08.2009 10:05 |
Уничтожение потока | SNUPY | Общие вопросы Delphi | 2 | 11.02.2009 22:47 |
Создание/уничтожение объектов | nimf | Общие вопросы Delphi | 10 | 14.04.2008 10:54 |