Добрый день!
Решил вот написать игру по типу atomic tanks(я в неё ещё под ДОСом играл, а тут нашел под линух и убил много времени)).
Но возникли проблемы с определением куда будут стрелять танки, которые находятся под управлением компа.. Где бы можно было почитать про создание подобных "интиллектов"? а то смотреть чужие исходники очень тяжело, да и не нужен мне супер-пупер алгоритм...
для тех кто не знает игры
скрин:
скачать можно http://sourceforge.net/project/showfiles.php?group_id=72358&package_id=72188&release_id=577365
заранее благодарен.
а какие могут быть варианты? у каждого уровня сложности ставишь свою погрешность, и стреляешь по оптимальной траектории, смещенной на случайную величину с дисперсией, равной погрешности.
Можно например сделать так:
Каждый выстрел задается несколькими значениями (направление, тип оружия, сила выстрела... точно не помню)
Можно сгенерировать набор выстрелов случайно, расчитать их и выбрать лучший по результату. Чтобы компьютер играл сильнее можно генерировать больше вариантов .
Ну... Я же не предлагаю рассматривать ВСЕ возможные случаи. Скажем придумали мы 100 совершенно случайных выстрелов. Какой шанс, что хоть один из них окажется удачным? Думаю, достаточно большой. Вот и находим лучший из этих 100. Если нет ни одного попадания, ничего страшного, ведь компьютер тоже промахиваться должен, просто выбираем тот, который ближе к врагу.
Можно развить идею. Например производим случайные выстрелы, пока один не попадет достаточно близко к какому-нибудь противнику. Затем проводим корректировку параметров, просто немного Увеличив/уменьшив параметры случайным образом.
Признаю, мой вариант не совсем серьезный, гораздо круче было бы выбирать цель, расчитывать все возможные оптимальные попадания после чего вносить погрешность... но как вариант ...
Есть идея создавать танчики со своим "характером".. Тоесть один будет предпочитать стрелять параболой с максимальной силой, а другой с минимальной(при этом подбирая другой угол), а третий будет любить рикошеты... А выбирать для цели будем наверное самого слабого(как в реальной жизни))
пойду читать теорию(мат часть+ физ часть)
При наличии нескольких равнозначных вариантов выбор между ними осуществляется одним из следующих способов:
1. Датчиком случайных чисел.
2. Приоритетным выбором.
3. Берется первый попавшийся (не в смысле "произвольный", а именно в смысле "первый из найденных").