Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Алгоритм поиска работы в играх типа Settlers. Также постейший AI

Автор: Daddy
WEB-сайт: http://daddy.mirgames.ru

B примере будет описан алгоритм, в основном не подкрепленный програмным кодом.

Итак изночально определяются с классом персонажа который ищет работу, и создают для него список возможных работ. Например:

Для Строителя - builder : Tlist;
Для Серфа (который все таскает) - serf : Tlist;
И т.д.

Теперь представим что вы заказали строить здание, при заказе автоматически в serf добавляются строки с заданием следующего рода:

Принести Цемент, на координаты X Y.

Каждый рабочий(серф) проверяет этот serf на наличие строк, и если строк больше ноля то рабочий если не занят берет работу с верхней строчки, причем из serf он эту строку удаляет(чтобы другие не делали то что делает он). Но если рабочий не выполнив работу и например погиб, то его недоделаное действие опять попадает в serf лист.

Таким образом круг замкнулся. Допустим к месту принесли несколько мешков цемента и теперь надо бы строить, тогда в builder лист добавляется строка типа:

Строить, по координатам X Y.

Она НЕ удаляется(только в Сэттлерах которые младше третьей части удаляется) из списка до тех пор пока здание не будет построено. Таким образом все не занятые строители пойдут отстраивать здание.

Проект Delphi World © Выпуск 2002 - 2024
Автор проекта: USU Software
Вы можете выкупить этот проект.