Dinisimys  Пользователь
Сейчас: Offline
Имя: Денис Регистрация: 30.07.2012
| Помогите в написании алгортима обхода препятствий для бота. Игровое поле - это квадрат, с координатной сеткой. Мин x=0, макс х=ширине поля, мин у=0, макс у=высоте поля. На поле могут появляться рандомно боты. Бот - квадрат, заданный координатами верхнего левого угла,шириной и высотой квадрата. Бот может дваигаться в рандомно напрвлении - выбирается точка, в которую бот перемещается(в данном случае для перемещения используется его верхний левый угол). Но если на пути бота встретится квадрат, который так же само задан координатами, шириной и высотой. Бот должен определить, как его обойти. На данный момент, я сделал так, чтобы обьекты не могли перекрывать друг друга. Тут алгоритм прост: проверяется, если контуры квадрата-бота входят в контуры квадрата-препятствия(или дургого бота) тогда возвращаются предыдущие координаты. Но в таком случае, если вдруг встеяается два бота - они "липнут" друг до друга за счет возвращения к предыдущим координатам. Поэтому надо реализовать алгоритм обхода препятствия/другого бота. Также боты двигаются попиксельно, поэтому , например, волновой алгоритм не подходит Помогите написать алгоритм.
Изменено Dinisimys (24.01 / 23:02) (всего 2 раза) |