Computer Science МФТИ Changes    |    Index    |    Search
::: CraftCertain :::
Parents: WebHome > AgentProjects > AgentCraft
 
  ACM . Agent . CraftCertain # Edit # Attach # Diffs # Printable # More :::

Main
• Register
• Users
• Site Map

Curriculum

Agent Web
• projects

Algorithms

Web Learn

Image Kit

ProgTech

Publishing

Задача

 Разбиение войск на отряды, солдаты которых находятся рядом на карте в начальный момент времени. Маневры и перестроения, сбор возле командира. Простая атака врага.

Реализация

 Работа платформы реализована следующим образом(см. scheme.doc): при загрузке карты определяется количество игроков и для каждого из них создается структура AiPlayer. Эта структура на протяжении всей игры содержит, в частности, ссылки на всех воинов игрока. Любой воин описывается структурой Unit, содержащей его координаты, текущее здоровье, ссылку на соответствующий AiPlayer. На протяжении всей игры через равные промежутки времени для каждого из игроков вызывается последовательно список процедур, описанный в файле data\ccl\ai.ccl (входит в исходные тексты fre*craft). Причем последующая процедура вызывается только в том случае, если предыдущая вернула ложное значение, в противном случае предыдущая вызывается повторно. В реализации каждой из задач первой такой процедурой является следующая: массив ссылок на всех воинов данного игрока разбивается на массивы AiPlayer->Force[i] стоящих рядом воинов (по их координатам). Воинов каждого из таких массивов будем называть отрядом. Первый воин массива является командиром отряда. Любая следующая процедура списка отвечает за перемещения и атаку воинов. В такой процедуре любому воину можно дать одну из двух команд: CommandMove с координатами точки на карте и CommandAttack со ссылкой на структуру Unit вражеского воина. В первой задаче в списке процедур чередуются процедуры, дающие отдельным или всем воинам команды движения и процедуры ожидания общей остановки. Последней из процедур является зацикленная процедура атаки, в которой для каждого воина выбирается солдат врага (используется функция AttackUnitsInDistance, которая по нашему солдату возвращает солдата врага).

Возможное развитие

 Моделирование военных парадов :).

Установка

 Инструкция: установить freecraft-030311-src.tar.gz, в эту же директорию следует распаковать patch.tar. Дальнейшие инструкции по установке содержатся в файле doc\install.html. Основные измененные файлы:
  src\ai\ccl_ai.c - реализации процедур.
  src\clone\max_attack.c - реализация схемы.
  data\ccl\ai.ccl - содержит списки процедур.

-- MaxKudrin? - 10 May 2004

Attachment sort Action Size Date Who Comment
patch.tar manage 291.0 K 17 May 2004 - 18:05 MaxKudrin?  
scheme.doc manage 35.5 K 23 May 2004 - 13:29 MaxKudrin?  

Rambler's Top100 Rambler's Top100


# Edit menu  

Topic revision r1.7 - 25 May 2004 - 06:26 GMT - MaxKudrin?
Topic parents: WebHome > AgentProjects > AgentCraft
Copyright © 2003-2017 by the contributing authors.