Автор работы: Пользователь скрыл имя, 26 Февраля 2013 в 06:52, курсовая работа
Данная курсовая работа посвящена разработке алгоритма интеллектуального управления танком для участия в конкурсе «Российский кубок по программированию искусственного интеллекта CodeTanks 2012 (Russian AI Cup)». В работе рассмотрены принципы наиболее эффективного поведения танка, позволяющие ему эффективно передвигаться по полю, минимизировать повреждения от танков оппонентов и набирать как можно большее количество очков за счет уничтожения танков оппонентов. Алгоритм реализован на языке программирования Python 2.7.3 в среде разработки JetBrains PyCharm 2.6.3.
Введение 3
1 О мире CodeTanks 2012 4
1.1Общие положения и правила 4
1.2 Описание игрового мира 5
1.3 Описание танков 7
1.4 Описание снарядов и механики попаданий 9
1.5 Описание бонусов 10
1.6 Начисление баллов 11
2 Стратегия управления танком 12
2.1 Выбор танка 12
2.2 Принципы поведения танка 14
2.2.1 Движение танка 15
2.2.1.1 Уворот 19
2.2.1.2 Рикошет 20
2.2.2 Стрельба 22
Заключение 24
Список использованной литературы 25
Приложение А 26
Введение 3
1 О мире CodeTanks 2012 4
1.1Общие положения и правила 4
1.2 Описание игрового мира
1.3 Описание танков
1.4 Описание снарядов и механики попаданий 9
1.5 Описание бонусов
1.6 Начисление баллов
2 Стратегия управления танком 12
2.1 Выбор танка 12
2.2 Принципы поведения танка 14
2.2.1 Движение танка 15
2.2.1.1 Уворот 19
2.2.1.2 Рикошет 20
2.2.2 Стрельба 22
Заключение 24
Список использованной литературы 25
Приложение А 26
1304.123074.000 ПЗ | ||||||||||
Изм. |
Лист |
№ докум |
Подп. |
Дата | ||||||
Разраб. |
Разработка алгоритма |
Лит. |
Лист |
Листов | ||||||
Пров. |
У |
1 |
41 | |||||||
Т.контр |
||||||||||
Н.контр |
||||||||||
Утв. |
Изм.
Лист
№ докум.
Подпись
Дата
Лист
3
1304.123074.000 ПЗ
Введение
Данная курсовая работа посвящена разработке алгоритма интеллектуального управления танком для участия в конкурсе «Российский кубок по программированию искусственного интеллекта CodeTanks 2012 (Russian AI Cup)». В работе рассмотрены принципы наиболее эффективного поведения танка, позволяющие ему эффективно передвигаться по полю, минимизировать повреждения от танков оппонентов и набирать как можно большее количество очков за счет уничтожения танков оппонентов. Алгоритм реализован на языке программирования Python 2.7.3 в среде разработки JetBrains PyCharm 2.6.3.
CИзм.
Лист
№ докум.
Подпись
Дата
Лист
4
1304.123074.000 ПЗ
odeTanks 2012 – это Российский кубок по програмированию искуственного интеллекта.
Целями конкурса являются:
- повышение общественного интереса к сфере создания программных продуктов;
- предоставление участникам конкурса возможности раскрыть творческие способности;
- развитие профессиональных навыков участников конкурса.
Данное соревнование предоставляет возможность проверить навыки программирования, создав искусственный интеллект (стратегию), управляющий танком в специальном игровом мире. Танк должен сражаться на поле боя против боевых подразделений той же численности нескольких других игроков в режиме «каждый сам за себя». Победителем считается игрок, набравший максимальное количество баллов.
На выбор игроку дано 3 типа танков, различающихся по целому ряду параметров: средний танк (СТ), тяжелый танк (ТТ) и самоходное противотанковое орудие (ПТ). Каждая стратегия во время инициализации выбирает себе тип танка, которым и будет управлять во время боя.
Изм.
Лист
№ докум.
Подпись
Дата
Лист
5
1304.123074.000 ПЗ
1.2 Описание игрового мира
Игровой мир представляет
собой некоторую двумерную
Время в игре дискретное и измеряется в «тиках». В начале каждого «тика» игра получает от стратегий желаемые действия танков в этот тик и обновляет состояние танков в соответствии с этими желаниями и ограничениями мира. Затем происходит расчет изменения мира и объектов в нем за этот тик, и процесс повторяется снова с обновлёнными данными. Максимальная длительность каждой игры – 5000 тиков. Существуют случаи, в которых игра может закончиться раньше этого времени, например, в случае, если не уничтоженными остался только танк одного игрока, либо стратегии всех игроков «упали». «Упавшая» стратегия больше не может управлять танками.
Стратегия считается «упавшей» в одном из двух случаев:
- Процесс, в котором
запущена стратегия,
- Стратегия превысила
одно (любое) из отведенных ей
ограничений по времени.
Лист
№ докум.
Подпись
Дата
Лист
6
1304.123074.000 ПЗ
миллисекунд процессорного времени.
В мире CodeTanks 2012 существует 3 типа объектов. Далее приведено их физических и геометрических параметров:
- Танк – объект прямоугольной
формы, управляемый игроком (
- Снаряд – небольшой
объект прямоугольной формы,
- Бонус (полезный предмет)
– статический объект
Лист
№ докум.
Подпись
Дата
Лист
7
1304.123074.000 ПЗ
подобрать бонус, коснувшись его. При этом скорость танка изменяется так, как если бы он столкнулся с бонусом.
Как уже было сказано выше, в игре существует три типа танков.
СТ – небольшой лёгкий и мобильный танк, основным преимущество которого являются не броня и высокая прочность корпуса, а способности уходить от атак, заходить во фланг противнику, а также быстро собирать бонусы. В дополнение к этому СТ может двигаться задним ходом ненамного медленнее, чем вперед.
ТТ имеет чуть большие размеры и гораздо массивнее. Он менее подвижен, чем СТ. Главным преимуществом ТТ является повышенная прочность корпуса и достойное лобовое и бортовое бронирование.
ПТ в большинстве случаев
представляет собой стационарную турель
– боевую единицу поддержки. ПТ имеет
высокую прочность корпуса и
очень толстую лобовую броню.
Однако бортовая броня тоньше. Чем
у среднего танка, а ограничение
угла поворота орудия не позволяет
стрелять по противникам, если только
они не находятся в узком секторе
перед ПТ. Вдобавок к выше сказанному,
ПТ не слишком мобильно. Это делает
его уязвимым к фланговым обходам,
а также практически
Изм.
Лист
№ докум.
Подпись
Дата
Лист
8
1304.123074.000 ПЗ
В следующей таблице приведены основные характеристики танков.
Таблица 1. Основные характеристики танков
Характеристика танка |
СТ |
ТТ |
ПТ |
Ширина, точек |
90 |
105 |
112,5 |
Высота, точек |
60 |
75 |
67,5 |
Длина орудия, точек |
67,5 |
82,5 |
97,5 |
Масса танка, ед. массы |
10 |
30 |
20 |
Мощность двигателя, ед. мощности |
7500 |
13500 |
7500 |
Коэфф. мощности при движении назад |
0,75 |
0,65 |
0,5 |
Скорость поворота башни, град/тик |
1 |
0,75 |
1,5 |
Макс. угол поворота башни, град |
- |
- |
20 |
Макс. здоровье экипажа |
100 |
100 |
100 |
Макс. прочность корпуса |
200 |
250 |
250 |
Толщ. лобовой брони, мм |
175 |
200 |
250 |
Толщ. бортовой брони, мм |
150 |
175 |
250 |
Толщ. кормовой брони, мм |
100 |
100 |
100 |
Длительность перезарядки, тиков |
150 |
150 |
125 |
Помимо геометрического положения, у танка есть 3 параметра, отображающих его текущее состояние: прочность корпуса, здоровье экипажа и количество премиумных снарядов. Если значение прочности корпуса или здоровья экипажа опускается до нуля, танк считается уничтоженным и далее Изм.
Лист
№ докум.
Подпись
Дата
Лист
9
1304.123074.000 ПЗ
не управляется стратегией.
Тем не менее, танк не исчезает из мира,
а остается как пассивный объект.
Уничтоженный танк под воздействием
внешних сил может быть смещен.
С уменьшением здоровья экипажа
эффективность управления танком падает:
он начинает медленнее двигаться, поворачивать
башню, увеличивается время
Единственным преимуществом
обычных снарядов является высокая
начальная скорость полёта. Недостатков
множество: падение бронепробиваемости
пропорционально падению
Премиумные снаряды этих недостатков лишено, однако начальная скорость полёта у них меньше, что делает проблематичной стрельбу на большие дистанции, и количество таких снарядов строго ограничено.
Основные характеристики снарядов приведены в следующей таблице:
Таблица 2. Основные характеристики снарядов
Характеристика |
Обычный снаряд |
Премиумный снаряд |
Длина, точек |
22,5 |
22,5 |
Ширина, точек |
7,5 |
7,5 |
Масса, ед. массы |
1 |
0,5 |
Начальная скорость, точек/тик |
16,7 |
13,3 |
Урон |
20 |
35 |
Бронепробиваемость, мм |
215 |
250 |
Падение бронепробиваемости |
Да |
Нет |
Угол рикошета, град |
60 |
- |
Изм.
Лист
№ докум.
Подпись
Дата
Лист
10
1304.123074.000 ПЗ
Пояснения к некоторым характеристикам:
- Бронепробиваемость –
максимальная толщина брони,