Окончательные результаты здесь!
Введение
Взятие игры сильно вдохновлено игрой Manu's Town . Это происходит в мире мечей и магии. Король, который управлял всем континентом, только что умер, и теперь правители многих городов-государств сражаются за территорию. Вы один из этих лордов, и ваша цель - завоевать и управлять каждым городом.
Принцип
Люди делятся на 8 классов :
Warlocks : Fighter (magic)
Crusaders : Fighter (melee)
Amazons : Fighter (range)
Corsairs : Utility (steal, guard, transport)
Bishops : Utility (convert, exorcize)
Necromancers : Utility (resurrect)
Architects : Utility (build)
Peons : Resource (income, recruits)
Когда начинается игра, вы правите одним городом. В каждом городе 100 человек . Вы должны разделить их между этими 8 категориями.
Затем начинается настоящая игра, которая пошаговая. Ход состоит из 12 фаз , 7 из которых являются интерактивными (запрос ботов для команды). Следующая фаза начинается, когда предыдущая фаза была выполнена каждым городом (Фаза 1: Город 1, Город 2, Город 3 ...; Этап 2: Город 1, Город 2, Город 3 ...):
1. Raise Taxes - AUTOMATED
2. Steal Money - INTERACTIVE
3. Recruit Troops - INTERACTIVE
4. Pay Wages - AUTOMATED
5. Try Revolt - AUTOMATED
6. Convert Soldiers - INTERACTIVE
7. Attack Town - INTERACTIVE
8. Raise Corpses - INTERACTIVE
9. Move Army or Tribute - INTERACTIVE
10. Defend against Threats - AUTOMATED
11. Construct Buildings - INTERACTIVE
12. Make Children - AUTOMATED
Контроллер предоставляет вам ввод через аргументы команды, ваша программа должна выводить через stdout.
Синтаксис
Вывод (подготовка)
Перед началом игры контроллер вызывает вашу подачу без аргументов. Это означает, что вы должны распределить свои 100 человек на 8 категорий.
Вам необходимо вывести:
Warlocks Crusaders Amazons Corsairs Bishops Necromancers Architects Peons
Например: 15 10 12 10 7 5 1 40
.
Каждый город также начинается с 500 золотых и 5 трупов.
Входные
данные
Каждый раз , когда ваша программа называется, он будет получать аргументы в следующем формате:Round;Phase;YourPlayerId;YourTownId;PlayerId_TownId_Gold_Corpses_Warlocks_Crusaders_Amazons_Corsairs_Bishops_Necromances_Architects_Peons_Temples_Barracks_Estates_Palaces;PlayerId_TownId_Gold_Corpses_Warlocks_Crusaders_Amazons_Corsairs_Bishops_Necromances_Architects_Peons_Temples_Barracks_Estates_Palaces;...
Пример ввода
1;2;1;1;0_0_600_5_15_10_12_10_7_5_1_40_0_0_0_0;1_1_700_5_15_10_12_10_7_5_1_40_0_1_0_2;...
Здесь вы видите, что это 1-й раунд, 2-й этап, вы являетесь игроком 1 в городе 1. У вас есть 700 золотых, 5 трупов, 15 колдунов, 10 крестоносцев, 12 амазонок, 10 корсаров, 7 епископов, 5 некромантов, 1 архитектор, 40 пеонов, 0 храмов, 1 казарма, 0 поместий и 2 дворца.
Выход
Смотрите геймплей.
Игровой процесс
Все фазы
Команда W
= ПОДОЖДИТЕ
Неверная команда = ПОДОЖДИТЕ
Этап 1: повышение налогов
Доход генерируется в зависимости от вашего населения и ваших завершенных зданий:
+5 gold * Peons
+2 gold * (Warlocks + Bishops + Necromancers) * TEMPLES
+2 gold * (Crusaders + Amazons) * BARRACKS
+2 gold * (Corsairs + Peons) * ESTATES
+10 gold * PALACES
Этап 2: украсть деньги
На этом этапе вы можете украсть деньги из одного города, отправив корсары. Каждый Корсар может украсть до 10 золотых (т.е. 12 Корсаров могут украсть до 120 золотых). Если у целевого города недостаточно золота, ваши корсары украдут все, вплоть до максимальной суммы долга: 200 золота . Если вы попытаетесь отправить больше корсаров, чем у вас, программа будет использовать все ваши доступные корсары.
Синтаксис команды :S DestinationId Corsairs
Этап 3: набор войск
Здесь вы можете тренировать своих людей, потратив немного золота. Вы можете набирать столько юнитов, сколько захотите, при условии, что у вас есть достаточно пионов и золота. Если вы попытаетесь набрать больше, чем можете, игра будет набираться случайным образом, пока все не будет потрачено. Программа учитывает ваши максимальные квоты (если вы попытаетесь набрать 10 крестоносцев и 5 амазонок только с 8 пионами, она, например, наберет 6 крестоносцев и 2 амазонки, а не 8 амазонок или 8 чернокнижников).
Warlock : 10 gold
Crusader : 10 gold
Amazon : 10 gold
Corsair : 12 gold
Bishop : 20 gold
Necromancer : 20 gold
Architect : 15 gold
Синтаксис команды :R Warlocks Crusaders Amazons Corsairs Bishops Necromancers Architects
Этап 4: Заработная плата
Заработная плата списывается в зависимости от вашего населения:
-1 gold * (Warlock + Crusaders + Amazons)
-2 gold * (Corsairs + Bishops + Necromancers + Architects)
Фаза 5: Попробуйте Восстание
Если ваш баланс отрицательный, вы теряете контроль над своим городом вне закона . После восстания золото города сбрасывается до начальной стоимости: 500 золота . Население поддерживается на нынешнем уровне.
Этап 6: конвертировать солдат
Каждый из ваших епископов может конвертировать 1 вражеского солдата (Чернокнижник, Крестоносец или Амазонка) из выбранного города за плату в 50 золота за единицу. Преобразованные юниты объединяют силы, дислоцированные в вашем городе. Как и при наборе персонала, если у вас недостаточно золота или епископов, программа конвертируется случайным образом при соблюдении квот.
Синтаксис команды :C DestinationId Warlocks Crusaders Amazons
Фаза 7: Город атаки
Вы можете отправить армию чернокнижников, крестоносцев и амазонок, чтобы завоевать город. Если вы попытаетесь отправить больше, чем имеете, программа отправит всех.
Солдаты получают 1,5 боевых бонуса по этой схеме: Mage > Range > Melee > Mage
(т.е. Чернокнижник, сражающийся с Амазонкой, получает 1,5 силы). Только избыточные единицы получают этот бонус (т.е. Чернокнижник сражается с Чернокнижником, а Амазонка не получает этот бонус). Бонус относится как к атаке, так и к защите.
Убытки распределяются случайным образом между отрядами победителя в соответствии с меньшей общей мощью (т.е. сила атаки: 12 против силы защиты: 14, защита побеждает и проигрывает 12 единиц). Проигравший теряет все свои юниты. Каждая мертвая единица добавляется к количеству трупов атакованного города. Если преступление побеждает, город захватывается и теперь принадлежит атакующему. Он также хранит золото, трупы и пионы, которые были в этом городе. Корсары, епископы, некроманты и архитекторы бегут перед потенциальным притеснением.
Защита ничего не получает.
Синтаксис команды :A DestinationId Warlocks Crusaders Amazons
Этап 8: Поднять трупы
Каждый из ваших некромантов может воскресить до 5 человек, потребляя трупы и тратя золото. Каждый воскресший Пион стоил 1 труп и 20 золотых. Если вы попытаетесь воскресить больше, чем сможете, программа потратит все, что у вас есть.
Синтаксис команды :R Corpses
Фаза 9: Переместить армию или дань
Вы можете отправить единицы в другой город. Если вы попытаетесь отправить больше, чем имеете, программа отправит всех.
Синтаксис команды :M DestinationId Warlocks Crusaders Amazons Corsairs Bishops Necromancers Architects
Или вы можете отправить золото, заказав корабли Корсаров. Каждый корсар может перевозить до 200 золотых . Если вы попытаетесь отправить больше, чем имеете, программа отправит то, что у вас есть.
Синтаксис команды :T DestinationId Gold
Этап 10: защита от угроз
Несколько угроз угрожают нанести вред вашему городу:
- Зомби: мертвые не всегда такие мертвые, как выглядят. 10% (испорченных) трупов в вашем городе проснутся и съедят мозги. Каждый зомби съест 1 пеона, а затем отправится в небытие (трупы как зомби, так и съеденных пионов потребляются).
- Демоны: Ваши пионы должны слышать проповеди, иначе они начнут призывать Темных Духов. Каждый ваш епископ покрывает потребности до 50 пеонов. 10% (испорченных) ваших еретиков (Peons в избытке) будут порождать демонов. Демоны убивают 1 Пиона каждый и возвращаются в ад (трупы Пионов добавляются в счет города).
- Бандиты: По соседству живут преступники. Общая численность преступников делится на равные части между городами и направляется на кражу богатства. Ваша единственная защита - ваши патрули Корсаров. Каждый корсар может остановить до 5 преступников. Каждый незаконный преступник крадет 10 золотых из вашего города (максимальный долг города составляет 200 золотых)
По крайней мере, 1 город Outlaws (100 жителей) генерируется в начале игры, затем еще 1 на каждые 5 игроков (т.е. 1-4 игрока: 1 Outlaws, 5-9 Players: 2 Outlaws ...). Преступники могут быть признаны сid = -1
Этап 11: Построить здание
По достижении этого этапа строительство зданий в вашем городе продвигается в соответствии с количеством архитекторов. Каждый Архитектор увеличивает завершение одного здания на 8%. Когда здание достигает 100%, оно завершается и начинает генерировать доходы в следующей фазе «Налоги». Очередь строительства управляется автоматически (первым пришел, первым обслужен).
Затем вы можете также начать строительство других зданий (BuildingId = Letter в скобках):
TEMPLE (T) : 200 Gold
BARRACKS (B) : 200 Gold
ESTATE (E) : 200 Gold
PALACE (P) : 500 Gold
Вы можете начать строительство столько зданий, сколько захотите, и если у вас недостаточно золота, здание будет проигнорировано. Строительство ваших новых зданий начнется только в следующем раунде.
Синтаксис команды :B BuildingId BuildingId BuildingId ...
Этап 12: сделать детей
Каждые пять раундов (раунд 5, 10, 15 ...), новые Peons будут рождаться и готовы к бою. Каждая пара Пионов будет приносить 1 Пион (т.е. 23 Пиона генерируют 11 новых Пионов).
правила
- Боты не должны быть написаны, чтобы побеждать или поддерживать определенных других ботов.
- Запись в файлы разрешена. Пожалуйста, напишите «yoursubmissionname.txt», папка будет очищена перед началом игры. Другие внешние ресурсы запрещены.
- Ваше представление имеет 1 секунду, чтобы ответить (в каждом городе).
- Предоставьте команды для компиляции и запуска ваших представлений.
выигрыш
Победителем считается тот, у кого больше городов после 100 раундов. Если игрок захватывает все города, игра останавливается и он выигрывает. Если у нескольких игроков одинаковое количество городов, общая численность населения будет учитываться, тогда количество золота.
контроллер
Вы можете найти контроллер на GitHub. Он также содержит 2 примера ботов, написанных на Java. Откройте его в Eclipse, поместите скомпилированные боты в корневую папку и добавьте класс в управляющую программу (так же, как в примере с ботами).
Поединки
Формула боя выглядит примерно так:
Для каждого класса солдат (Чернокнижник, Крестоносец, Амазонка):
- Рассчитайте баланс между нападением и защитой (т.е. у кого больше каждого класса и сколько еще?)
- Для лишних солдат (т. Е. Значения положительного баланса) посмотрите, сколько «слабых целей» (см. Диаграмму Фазы 7).
- Умножьте боевую силу подходящих солдат (т.е. «слабых целей» по сравнению с «лишними солдатами») на бонус и добавьте остальных с боевой силой 1.
Вы можете попробовать симулятор здесь: http://ideone.com/ArJosE (просто измените значения солдат, вы получите бонусы и общие силы)
Вот несколько тестовых случаев:
Attack Defense A. Bonus D. Bonus A. Str D. Str Winner
20/10/0 12/12/12 8/0/0 0/2/10 34.0 42.0 Defense
40/0/5 12/12/12 12/0/0 0/12/0 51.0 42.0 Attack
0/60/8 10/30/2 0/10/6 8/0/0 76.0 46.0 Attack
20/20/40 90/5/5 0/15/5 40/0/0 90.0 120.0 Defense
Окончательные результаты
В среднем 10 игр. Синтаксис:Player(Towns, Population, Gold)
1. Opportunist(6.4, 4165, 2895626)
2. Politician(6.4, 1048, 42542)
3. Outlaw(2.8, 1575, 349073)
4. YoungEarl(0.4, 3424, 941624)
5. Aegis(0, 0, 0)
. Butter(0, 0, 0)
. Commander(0, 0, 0)
. Lannister(0, 0, 0)
. Machiaveli(0, 0, 0)
. Monarch(0, 0, 0)
. Serenity(0, 0, 0)
. Sehtimianer(0, 0, 0)
. Sleeper(0, 0, 0)
. Zealots(0, 0, 0)
Результаты 10 игр: http://pastebin.com/GdufEYjm
Полные журналы 2 игр: http://pastebin.com/GQDZ0JdY & http://pastebin.com/m3UBTDuC
Все хорошо сыграли, борьба между политиком и оппозиционером была очень тесной.
The total Outlaws population is divided equitably between towns and sent to steal wealth.
Сколько всего бандитов?