Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Написание игр _ atanks

Автор: compiler 8.03.2008 1:40

Добрый день!
Решил вот написать игру по типу atomic tanks(я в неё ещё под ДОСом играл, а тут нашел под линух и убил много времени)).
Но возникли проблемы с определением куда будут стрелять танки, которые находятся под управлением компа.. Где бы можно было почитать про создание подобных "интиллектов"? а то смотреть чужие исходники очень тяжело, да и не нужен мне супер-пупер алгоритм...

для тех кто не знает игры
скрин: Прикрепленное изображение
скачать можно http://sourceforge.net/project/showfiles.php?group_id=72358&package_id=72188&release_id=577365

заранее благодарен.

Автор: Michael_Rybak 8.03.2008 2:08

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

Автор: compiler 8.03.2008 2:18

Цитата(Michael_Rybak @ 7.03.2008 21:08) *
а какие могут быть варианты? у каждого уровня сложности ставишь свою погрешность, и стреляешь по оптимальной траектории, смещенной на случайную величину с дисперсией, равной погрешности.
хм.. А как поступать когда вариантов выстрела с прямым попаданием несколько(напрямую и скажем с рикошетом от стенки)? И как получить это оптимальную траекторию?
update
и как выбрать по какому танку стрелять?

одни вопросы?)

Автор: Archon 9.03.2008 17:08

Можно например сделать так:
Каждый выстрел задается несколькими значениями (направление, тип оружия, сила выстрела... точно не помню)
Можно сгенерировать набор выстрелов случайно, расчитать их и выбрать лучший по результату. Чтобы компьютер играл сильнее можно генерировать больше вариантов smile.gif.

Автор: compiler 9.03.2008 18:04

Цитата(Archon @ 9.03.2008 12:08) *
Каждый выстрел задается несколькими значениями (направление, тип оружия, сила выстрела... точно не помню)
да, в оригинальной версии задаются эти три параметра..
Цитата(Archon @ 9.03.2008 12:08) *
Можно сгенерировать набор выстрелов случайно

Как? Если их бесчисленное множество.. можно делать упор на силу а можно на угол, можно стрелять напрямую а можно рикошетом от стенки...
Цитата(Archon @ 9.03.2008 12:08) *
, расчитать их и выбрать лучший по результату.
как выбрать лучшего среди бесконечности?)

да и еще надо выбрать по кому стрелят...

Автор: Archon 9.03.2008 18:38

smile.gif

Ну... Я же не предлагаю рассматривать ВСЕ возможные случаи. Скажем придумали мы 100 совершенно случайных выстрелов. Какой шанс, что хоть один из них окажется удачным? Думаю, достаточно большой. Вот и находим лучший из этих 100. Если нет ни одного попадания, ничего страшного, ведь компьютер тоже промахиваться должен, просто выбираем тот, который ближе к врагу.

Можно развить идею. Например производим случайные выстрелы, пока один не попадет достаточно близко к какому-нибудь противнику. Затем проводим корректировку параметров, просто немного Увеличив/уменьшив параметры случайным образом.

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

Автор: compiler 9.03.2008 19:13

Есть идея создавать танчики со своим "характером".. Тоесть один будет предпочитать стрелять параболой с максимальной силой, а другой с минимальной(при этом подбирая другой угол), а третий будет любить рикошеты... А выбирать для цели будем наверное самого слабого(как в реальной жизни))

пойду читать теорию(мат часть+ физ часть)

Автор: andriano 10.03.2008 16:04

При наличии нескольких равнозначных вариантов выбор между ними осуществляется одним из следующих способов:
1. Датчиком случайных чисел.
2. Приоритетным выбором.
3. Берется первый попавшийся (не в смысле "произвольный", а именно в смысле "первый из найденных").