Войти
ПрограммированиеФорумИгровая логика и ИИ

шустрый Prolog за умеренную цену (7 стр)

Страницы: 1 2 3 4 5 6 7
#90
1:05, 7 апр. 2012

RPG
> С тем же танком. Если писать алгоритм на си - то я однозначно контролирую, что
> именно какой момент времени делает танк. Когда же записано всё в предикатах, и
> где-то обнаруживается баг - уже теряешь контроль за происходящим. Отладка таких
> программ ещё запутаннее чем разработка:)

Так пролог не для этого. Он как раз тогда нужен, когда алгоритм ты не знаешь и знать не можешь.
У многих складывается ошибочно убеждение что на прологе очень легко ИИ прогать. Это не так.

Пролог нужен когда ты точно знаешь, ЧТО должно получиться, но ты понятия не имеешь КАК это сделать.
Я не помню уже точно в чем была изначальная идея применения пролога в этой теме (это было 3 года назад!), но явно не для программирования танков.


#91
1:09, 7 апр. 2012

Насколько я помню идея была в том, чтобы иметь динамически-развивающийся мир.
При этом под динамически развивающемся миром просто понимается добавление новых предикатов в систему - и все.
То есть нужно закодить какую-то расширяемую систему и пролог-машина должна уметь отыскивать решение за приемлимое время в ней.
Добавляя в систему новые предикаты по мы по идее получем динамически-развивающийся мир, контролируемый всеми введенными предикатами.
Но это все ля-ля.

#92
2:22, 7 апр. 2012

FROL
> Пролог нужен когда ты точно знаешь, ЧТО должно получиться, но ты понятия не
> имеешь КАК это сделать.
Я этим уже как-то занимался, делал мир, в котором можно выполнять какие-то действия и есть какие-то объекты. Проблема была в том, что при наличии бага в системе (что-то идёт явно не так как должно идти) отладить это почти невозможно и проще подумать и сделать алгоритм решения задачи:) К тому же если пролог ее находит - значит это решаемая задача, может быть NP-полная, но решаемая так или иначе.

Прошло более 6 лет
#93
18:00, 8 мар. 2019

ASBer
> Но на следующем такте мой протагонист берёт кружку со стола! факт 2 "на столе
> стоит кружка" перестаёт соответствовать действительности.
> И всё... откатить отдельно взятый факт в прологе как я понимаю невозможно.
> Собирать базу знаний на каждом такте с нуля - непозволительная роскошь.

Для удаления знаний из базы есть стандартный предикат retract.

Плюс в различных реализациях Пролога может иметься дополнительный нестандартный функционал менеджмента знаний. Например, если какая-то часть знаний загружена из определенного файла, то эти знания можно скопом выгружать и загружать снова - в промежутке поменяв этот файл любым удобным тебе способом. Или часть знаний хранить в традиционных реляционных базах данных (ну, типа MySQL) - а значит, туда легко могут лазить и другие части игры, написанные на традиционных языках.

#94
18:24, 8 мар. 2019

RPG
> Я этим уже как-то занимался, делал мир, в котором можно выполнять какие-то
> действия и есть какие-то объекты. Проблема была в том, что при наличии бага в
> системе (что-то идёт явно не так как должно идти) отладить это почти невозможно
> и проще подумать и сделать алгоритм решения задачи

Отладка программ на Прологе не отличается от других языков - если четко понимать, как работают программы в декларативной парадигме. Для этого нужен определенный опыт.

В большинстве случаев для отладки хватает обычного логирования через write. :)

Но есть и специальный функционал: точки останова, хуки на вызов определенных предикатов, просмотр знаний из базы по шаблону.

#95
3:34, 9 мар. 2019

Virtex
Ты ничего более древнего откопать не мог? На даты постов посмотри. Что-то я сильно сомневаюсь,что кто-то будет ждать ответа на свои вопросы 7 лет.

#96
14:04, 9 мар. 2019

Bioman
> Что-то я сильно сомневаюсь,что кто-то будет ждать ответа на свои вопросы 7 лет.
Ну ждать не ждать, а оценить в смысле "лучше поздно, чем никогда", могут. Подтверждаю как автор темы, на которую ответили через 4 года. :)

#97
18:03, 9 мар. 2019

Bioman, да в принципе, this тред можно и вообще удалить.

Автор не появлялся на форуме много лет. И наработки его уже не конкурентоспособны, фичи его Пролога есть в других реализациях, развиваемых не одиночками на энтузиазме.

Страницы: 1 2 3 4 5 6 7
ПрограммированиеФорумИгровая логика и ИИ

Тема в архиве.