Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
 Аватар для Anatoliy Coder
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 75

псевдо AI гонки

17.10.2013, 22:17. Показов 3774. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята, подкиньте идею как сделать псевдо-ии для бота в гонках?
Из данных есть только массив точек (х,у) для лвого края трассы и тоже самое для правого (см рисунок)
Название: Новый точечный рисунок.png
Просмотров: 156

Размер: 6.3 Кб
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.10.2013, 22:17
Ответы с готовыми решениями:

Гонки в 2Д
Всем привет. Итак ребят у меня тут проект - написать гонки в 2Д на С++... Возникли проблемы при написании класса... нужно написать класс;...

Гонки
Пишу курсовик, есть много вопросов. 1. Какими человеческими способами можно релизовать выполнение функций через промежутки времени для...

Гонки
Доброй ночи! Помогите решить задачу. Гонки проводятся 2-мя группами по 10 человек. Результаты соревнований показаны списками участников по...

20
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
18.10.2013, 12:45
Массив из 7 показанных точек или из большого количества?
В первом случае непонятно, откуда вообще взялась трасса. Может сплайн какой?
0
 Аватар для Anatoliy Coder
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 75
18.10.2013, 13:44  [ТС]
Трасса это 3D модель (которую я 100% не буду обрабатывать для ИИ), а точек можно и больше сделать при желании.
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
18.10.2013, 14:25
0
 Аватар для Anatoliy Coder
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 75
18.10.2013, 14:53  [ТС]
Ну от точки к точке это просто "скрипт" (и это у меня уже есть), хотелось бы чуток посложнее это в ту сторону где "движение можно задавать с отклонением"
0
1968 / 824 / 115
Регистрация: 01.10.2012
Сообщений: 4,861
Записей в блоге: 2
18.10.2013, 15:14
Как-то с терминами неважно. AI = Adobe Illustrator? А что такое "песвдо-ии" - теряюсь в догадках.
Если вопрос как из точек сделать кривую - сплайн конечно, напр кубический или Безье, тут широкий выбор
0
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
18.10.2013, 15:58
Цитата Сообщение от Igor3D Посмотреть сообщение
AI =
Artificial Intelligence = Искусственный Интеллект.

Добавлено через 7 минут
В большинстве случаев надо стараться ехать как можно более прямо и минимально использовать торможение.
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
18.10.2013, 16:37
Цитата Сообщение от Anatoliy_Coder
хотелось бы чуток посложнее это в ту сторону где "движение можно задавать с отклонением"
в движении по прямой добавьте случайность сдвига влево-вправо
0
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
18.10.2013, 16:49
Цитата Сообщение от tolimadokara Посмотреть сообщение
в движении по прямой добавьте случайность сдвига влево-вправо
Зачем там случайность? Я так понимаю, задача в выборе оптимального маршрута, а не рандомного. Anatoliy Coder, верно?
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
18.10.2013, 17:09
Цитата Сообщение от Quertiy
Я так понимаю, задача в выборе оптимального маршрута, а не рандомного.
Вроде как маршрут - это кольцо, не лабиринт.

Добавлено через 15 минут
Можно задачу разбить на подзадачи, что конкретно требуется?
--
К примеру есть координатная сетка 100 на 100 ячеек, некторые ячейки мертвые, некоторые - активные. Нужно зная первую старт-ячейку и конечную найти кратчайший маршрут к ней?
вот как на блюдичке ru.wikipedia.org/wiki/Алгоритм_Дейкстры.

Цитата Сообщение от ru.wikipedia.org
Алгори́тм Де́йкстры (англ. Dijkstra’s algorithm) — алгоритм на графах, изобретённый нидерландским ученым Э. Дейкстрой в 1959 году. Находит кратчайшее расстояние от одной из вершин графа до всех остальных. Алгоритм работает только для графов без рёбер отрицательного веса. Алгоритм широко применяется в программировании и технологиях, например, его используют протоколы маршрутизации
Спаси господи авторов статей Википедии.

Добавлено через 1 минуту
гуглить никто нехочет
0
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
18.10.2013, 17:13
Можно сделать фиксированные маршруты.

1. Самый оптимальный = бот с высоким ИИ.
2. Средней оптимальности = средний уровень
3. Бот на маршруте средней оптимальности едет с меньшей скоростью (тут вообще можно проценты забахать и плавно изменять уровень бота).

Т.е. если нет машин, то бот будет ехать по одной и той же траектории с заданной скоростью и изменять ее на поворотах, как записано в программе.

К этому добавить элементы ИИ: обработку ситуаций, когда рядом есть машины (торможение, когда подрезают, обгон впереди идущего и возврат на траекторию и т.д).
1
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
18.10.2013, 17:23
Там не может быть псевдоинтелекта, есть программа движения тачки по трассе и констранта которой равна скорость этой тачки. У игрока мощность двигателя максимальная, и если он играя не тупит то обходит математику благодаря которой противники так классно вписываются в повороты и обходят встречный трафик.

Это просто программа будет, нет там, имхо, никакого эврейского алгоритма.
0
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
18.10.2013, 17:55
Цитата Сообщение от tolimadokara Посмотреть сообщение
Алгоритм_Дейкстры
C каких пор он учитывает скорость дивжения, занос и всё остальное?
К задаче на графах сводить явно плохой способ...

Добавлено через 50 секунд
Цитата Сообщение от tolimadokara Посмотреть сообщение
Там не может быть псевдоинтелекта
Он потому и "псевдо", что его нет

Добавлено через 2 минуты
Цитата Сообщение от chizz Посмотреть сообщение
Можно сделать фиксированные маршруты.
Предлагаю выбирать наиболее дальнюю точку трассы, в которую можно попасть двигаясь по прямой. Не доезжая до неё некоторое заданное расстояние, выбрать заново. При переходе между отрезками использовать способ, требующий найменьшее снижение скорости.
1
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
18.10.2013, 17:59
Трасса же фиксированная. Вот если бы трасса изменялась или бот изначально не знает ее, а в процессе ищет оптимальный маршрут и оптимальную скорость..
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
18.10.2013, 17:59
Цитата Сообщение от Quertiy
C каких пор он учитывает скорость дивжения, занос и всё остальное?
К задаче на графах сводить явно плохой способ...
Так, Квертий, не понятно что нужно ТС. Тогда пускай берет пишет программу, а то вроде все так просто, алгоритмом в 30 строчек не отделаешься.
Цитата Сообщение от Quertiy
Он потому и "псевдо", что его нет
Псевдо... видимо потому что не-до-интелект
0
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
18.10.2013, 18:28
Цитата Сообщение от tolimadokara Посмотреть сообщение
Так, Квертий, не понятно что нужно ТС.
Хм.. Мне вроде как понятно.

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

Надо получить некоторый алгоритм для бота. При этом параметром алгоритма является его "разумность", т. е. оптимальность действий. 0 означает совсем неоптимальные, 1 - идеальное прохождение трассы в условиях отсутствия других игроков. Желательно так же добавить обработку действий других игроков, с аналогичным параметром.

Anatoliy Coder, подтверди моё понимание.

PS: В предложенном мной алгоритме данным параметром может являться намеренный выбор более близкой точки, расстояние до перерассчёта или частота перерассчёта точки и дополнительное торможение на поворотах.

Цитата Сообщение от chizz Посмотреть сообщение
расса же фиксированная. Вот если бы трасса изменялась или бот изначально не знает ее, а в процессе ищет оптимальный маршрут и оптимальную скорость..
Так что мешает так и сделать-то?
Что-то мне подсказывает, что ни в одной игре логика ботов не зашита в виде траектории для каждой трассы...
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
18.10.2013, 18:54
Цитата Сообщение от Quertiy
Трасса задана множеством точек, ограничивающих её с двух сторон...
Тогда так: ИИ это единственный модуль который размножается процессами для каждой машины, т.е. ИИ машины не зависит от ИИ другой машины. Машины выстраиваются в ряд, страртуют. После старта каждая машина выбирает некоторую случайную точку на расстоянии L, и стремится к ней. 5 машин - 5 точек стремления, должен возникнуть эффект борьбы. при стремлении к точке в такие параметры как: угол поворота рулевых колес, нажим на педаль газа можно ввести случайность, чтобы машини не казались роботами. При достижении конечной точки, машина выбирает следующую точку, и т.д.

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

Добавлено через 2 минуты
Градации интеллекта ИИ для Ботов можно реализовать паузами работы моуля ИИ. Самая умная машина думает 5 раз в секунду, самая глупая 1 раз в секунду.
1
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
18.10.2013, 19:41
Цитата Сообщение от tolimadokara Посмотреть сообщение
Самая умная машина думает 5 раз в секунду, самая глупая 1 раз в секунду.
Не наоборот ли? Чем чаще выбирать точку, в которую движешься, тем больше поворотов и тем меньше скорость...
0
1968 / 824 / 115
Регистрация: 01.10.2012
Сообщений: 4,861
Записей в блоге: 2
18.10.2013, 20:19
Цитата Сообщение от tolimadokara Посмотреть сообщение
Угол поворота колес, обороты двигателя будут определять физику движения модели авто по трассе, в которой есть четыре точки сцепления с дорогой, коеф. сцепления с дорогой, боковой ветер, аэродинамика корпуса, модели соударений автомобиля с препятствиями, авто-соперниками. Последнее очень сложно будет программировать.
Если с нуля - то сложно, однако есть движки которые вполне успешно обсчитывают это в реальном времени. Машина представляется как шасси (ходовая чвсть) и набор колес, можно задать какие ведущие.

Я так и не понял чего хочет ТС
0
 Аватар для Anatoliy Coder
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 75
19.10.2013, 00:40  [ТС]
Цитата Сообщение от Igor3D Посмотреть сообщение
Я так и не понял чего хочет ТС
Я поставил спасибки над теми постами где были хорошие идеи для алгоритма, а хотел я именно идею "как организовать ии для ботов", тоесть не сам алгоритм в его конечном виде, а его идею.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.10.2013, 00:40
Помогаю со студенческими работами здесь

2D гонки
Всем доброго времени суток, форумчане. Долго гадал, в какой же раздел форума мне писать, но в Mono все очень тихо, поэтому я пришел к вам....

Гонки
У меня курсовая - гонки. Все есть и все довольно неплохо работает, НО при старте машина срывается с места без плавного разгона и едет на...

Гонки
помогите плиз с курсовой по програмированию срочна нужна на тему гонки!!!!!!! мое мыло vetalii_galkin@mail.ru

Гонки на улитках
Рано утром четыре улитки, Энни, Бетти, Кристи и Диана одновременно начали свой путь через сад. Энни и Бетти сохраняли свой темп...

Исходник гонки
Всем привет,возник такой вопрос :у кого есть исходник любой игры ,но связный с тематикой гонки на С++ ,кто може скинуть если не трудно?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru