|
1 / 1 / 0
Регистрация: 20.09.2019
Сообщений: 61
|
|
Моделирование процессов на карте04.10.2019, 19:21. Показов 2205. Ответов 13
Метки нет (Все метки)
Здравствуйте!
Есть задача смоделировать процесс жизни зайцев и волков на карте, которая есть поле размером N на M. Вкратце: за шаг времени осуществляется ряд действия: животные перемещаются, размножаются, погибают и т.д. Как лучше смоделировать подобный процесс на C++ ? Можете предложить похожие проекты? Решение есть, но хочется увидеть другие способы, может быть более интересные и эффективные.
0
|
|
| 04.10.2019, 19:21 | |
|
Ответы с готовыми решениями:
13
«Моделирование процессов преобразования информации в сопроцессоре» Моделирование случайных процессов Моделирование реальных процессов |
|
2622 / 1633 / 266
Регистрация: 19.02.2010
Сообщений: 4,335
|
||
| 04.10.2019, 20:26 | ||
|
Вернее, там океан, но не в объёме, а в виде плоскостного среза. Т.е. океанских хищников и жертв переобозвать зайцами и волками - и будет то, что Вам надо. Перемещаются, размножаются, хищники кушают жертв,..
0
|
||
|
1 / 1 / 0
Регистрация: 20.09.2019
Сообщений: 61
|
|
| 05.10.2019, 11:29 [ТС] | |
|
XLAT, да, конечно, ООП
1
|
|
|
Just Do It!
|
||
| 05.10.2019, 14:09 | ||
|
мгновенное(стандартное имхо) решение так: 1. есть карта(двумерный массив) 2. волки и зайцы это объекты с полиморфным интерфейсом. 3. контейнер список(list) содержит указатели на полиморфные объекты animal. 4. стартовый инициализатор всего этого дела. 5. в общем цикле while(true) 6. В цикле(форич) проходим по методам animal.update() 7. В цикле(форич) проходим по методам animal.draw() 9. End. вот примерно так. дальше уже нюансы, например такие как: animal.update() разделить на два цикла с пробегами по: 1. animal.step() 2. animal.behavior() или не делить. и тд и тп.. это будет сказываться 1. на движение жизни на карте. 2. тупо оптимизация(скорость выполнения на цпу одного прохода по всем объектам) далее моделирование самого поведения здесь вообще вариантов уж фантастически множество, но это потом. ![]() ну, еще мелкий вопрос: на чем визуализовать? 1. тупо консоль 2. консоль с windows.h 3. freeglut и т.п..
0
|
||
|
1 / 1 / 0
Регистрация: 20.09.2019
Сообщений: 61
|
|
| 05.10.2019, 18:28 [ТС] | |
|
XLAT, ну да, примерно так и есть.
визуализация по условию задачи - псевдографика, но хотелось бы что-нибудь поинтереснее. Что посмотреть на эту тему? Простая графика - мордашки животных раз в секунду меняют клетку, где каждая клетка текстура травы.
0
|
|
|
Just Do It!
|
|||
| 05.10.2019, 18:54 | |||
|
сразу сообразил, что конечный результат это есть функция(например количество шагов после которых волки умрут от голода. потому что съели всех зайцев) с множеством входных параметров на на входе, т.е. этапе инициализации. наверно интересно будет найти такие условия, когда система будет находиться в максимально устойчивом состоянии, т.е. максимально долго(заданное число шагов прохода по объектам) в константном диапазоне численности волков и зайцев. ![]() ... я бы взял freeglut или glfw http://freeglut.sourceforge.net/ https://www.glfw.org
0
|
|||
|
1 / 1 / 0
Регистрация: 20.09.2019
Сообщений: 61
|
||||||
| 05.10.2019, 19:15 [ТС] | ||||||
|
XLAT, моделирование это и есть конечная цель, а графика - дополнение.
Меня вот еще что интересует - как лучше сделать процесс поедание зайца волком? По условию волк поедает зайца тогда, когда он оказывается на одной клетке, т.е. координаты двух объектов класса Animal в массиве animals совпадают и их подклассы не совпадают (Wolf != Rabbit). Правильно ли будет сделать так: Итерировать массив animals, есть условие совпадает, то на карте делаем соответствующую пометку, а сам объект удаляем деструктуром? Повторяем процесс итерации.
Если же волк достаточно сыт, то происходит размножение, то есть добавляем новый объект подкласса Wolf в animals
0
|
||||||
|
Just Do It!
|
|||||||
| 05.10.2019, 19:42 | |||||||
|
кстати зайцы тож так могут делать ![]() иначе что? для зайцев рандомная морковка? например такая схема(псевдокод)
0
|
|||||||
|
1 / 1 / 0
Регистрация: 20.09.2019
Сообщений: 61
|
|
| 06.10.2019, 10:03 [ТС] | |
|
XLAT, конечно, все животные обладают свойством умирать по достижению k возраста. Я не раскрыл все условия задачи. В общем, все законы экосистемы учтены так, как требует адекватная модель.
Не подскажешь как точно определить размер массива с указателями на классы? Я попытался сделать через идиому (sizeof(a)/sizeof(*a)), с некоторыми изменениями (ведь это массив указателей, а не просто массив элементов), однако не работает. Как будет корректно использовать эту идиому в данном случае?
0
|
|
|
Just Do It!
|
|||||||||||||||||
| 06.10.2019, 12:27 | |||||||||||||||||
0
|
|||||||||||||||||
|
Just Do It!
|
||||||
| 07.10.2019, 21:16 | ||||||
|
constantin01,
демка-черновик
чуть определиться с поведением зверья + чуть больше фич и можно прикручивать OGL
0
|
||||||
|
Just Do It!
|
|
| 27.02.2024, 15:18 | |
|
было продолжение.
код ниже от 4 февраля 2021 года. что оно такое - залил на рутуб: https://rutube.ru/video/privat... JGgCzezSQg вспомнил про этот минипрожэкт, как о иллюстрации к разговору с Адатто о возможных порядков теоретических построений ...
0
|
|
|
Just Do It!
|
|
| 27.02.2024, 15:45 | |
|
0
|
|
| 27.02.2024, 15:45 | |
|
Помогаю со студенческими работами здесь
14
MVC моделирование процессов Моделирование геологических процессов Моделирование переходных процессов Моделирование случайных процессов Математическое моделирование физических процессов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|