Помощь - Поиск - Пользователи - Календарь
Полная версия: алгоритм
Форум «Всё о Паскале» > Pascal, Object Pascal > Написание игр
masterofshadows
Мы с моим другом пишем текстовый квест с элементами рпг и даже тактики, все вроде шло нормально пока мы не столкнулись со следующей ситуацией:
- имеется поле 20Х10
-юниты могут ходить по нему тока направо налево вперед и назад...
-ход проходит примерно как в героях или фаллауте(тоест ьисть ограниченное кол ходов,которые мы можем сделать или не сделать)
II.Попытки решения:
В общем прописать возможные действия непосредственно для игрока несложно,но тут возникает проблема: как прописать AL
Что же мы сделали?
-превое, сто делает комп ето вычисляет свои координаты и координаты игрока
-затем он сравнивает их(вычитает Х1 из Х2 и У1 из У2 по модулю), тоесть он находит расстояние между собой и игроком...
-потом он рассматривает четыре случая:пойти направо нелево итп...и вычисляет в каком случае расстояние до игрока уменьшится...
III.Проблема.
проблема возникает тогда,когда комп приближается вплотную к игроку, тоесть допустим он стоит по диагонали от игрока - ходить и атаковать по диагонали нельзя(ну сделали так для облегчения прохождения)...и вот когда бот в етом случае думает когда ходить получается, что в двух случаях расстояние бут одинаковым и бот начинает метаться туда сюда не зная, что делать...

так вот не подскажете как сделать так , чтобы комп принимал в етом случае какое-то четкое решение???Если есть предложения по переделке алгоритма...или по его совершенствованию буду тока рад их прочитать...
если нужен именно текст алгоритма..то тока скажите тут же предоставлю...ща пока мне важно узнать возможна ли реализация самой идеи...
Archon

Цитата
проблема возникает тогда,когда комп приближается вплотную к игроку, тоесть допустим он стоит по диагонали от игрока - ходить и атаковать по диагонали нельзя(ну сделали так для облегчения прохождения)...и вот когда бот в етом случае думает когда ходить получается, что в двух случаях расстояние бут одинаковым и бот начинает метаться туда сюда не зная, что делать...
Что значит метаться туда сюда? Подразумевается, что бот не может сократить расстояние, тк оно уже минимально? Тогда как ты считаешь расстояние? Если ты просто смотришь, уменьшилось ли |x1 - x2| или |y1 - y2|, тогда будет два варианта хода: в первом случае разность иксов будет равна нулю, во втором - игреков. Если ты не знаешь, какой из НИХ выбрать... не заморачивайся, выбери первый попавшийся smile.gif

Если я чего-то недопонял, ты сам виноват - приводи исходник.
Гость
напиши теорию вероятности... или поставь, что если первым сканируется х и расстояние уменьшается, то у пускай даже не считывает!
Ozzя
Название: Секреты программирования игр
Автор: А. Ла Мот, Д. Ратклифф, М. Семинаторе, Д. Тайлер
Глава № 13
http://kusuka.info/2006/04/26/a_la_mot_d_r...vanija_igr.html
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.