Окончательные результаты здесь!
Введение
В 2042 году мир стал перенаселенным. Глобализация, перенаселенность, новый образ жизни и глобальное отсутствие гигиены вызвали распространение новой пандемии. В те трудные времена государственные лидеры должны управлять ситуацией. Вы не можете позволить своему населению быть уничтоженным, но, возможно, вы могли бы выиграть, позволив своим соседям умереть ...
глоссарий
Здоровые : Люди не инфицированные
Зараженные : Люди , которые могут умереть от пандемия
Мертвого : не считать тела, никакого особого эффекта (только забили)
Заражение Оценить : Количество здорового , кто станет Infected каждого поворота
Заражения Оценить : Процент Infected , который будет конвертировать Healthy в Infected каждый поворот
летальность Частота : Процент Infected , которые умирают каждый ход
миграции Скорость : Процент как здоровый и Infected , что эмигрируют / иммигрировать каждый поворот
Local: Влияет только на ваше состояние
Global : влияет на каждое состояние
Принцип
Каждый из игроков будет управлять одним городом, начиная с 100 человек . К сожалению, среди них один зараженный .
Игра пошаговая. Ход состоит из семи этапов , последний из которых является интерактивным (запрос команды для ботов). Порядок игроков рандомизируется каждый ход. Следующая фаза начинается, когда предыдущая фаза была выполнена каждым городом (Ход 1: Игрок 1, Игрок 2, Игрок 3 ...; Ход 2: Игрок 3, Игрок 2, Игрок 1 ...):
1. Mutation - AUTOMATED
2. Reproduction - AUTOMATED
3. Migration - AUTOMATED
4. Infection - AUTOMATED
5. Contagion - AUTOMATED
6. Extinction - AUTOMATED
7. Players Turn - INTERACTIVE
Контроллер предоставляет вам ввод через аргументы команды, а ваша программа должна выводить через stdout.
Синтаксис
вход
Каждый раз, когда ваша программа вызывается, она будет получать аргументы в следующем формате:
Round;YourPlayerId;PlayerId_Healthy_Infected_Dead_InfectionRate_ContagionRate_LethalityRate_MigrationRate;PlayerId_Healthy_Infected_Dead_InfectionRate_ContagionRate_LethalityRate_MigrationRate;...
Раунды 1-индексированы.
Пример ввода
6;2;1_106_23_9_2_4_13_5;0_20_53_62_16_20_35_5;2_20_53_62_16_20_35_5
Здесь вы видите, что это 6-й раунд, и вы являетесь игроком 2. У вас 20 здоровых, 53 зараженных, 62 умерших, 16% зараженности, 20% заражения, 35% смертности и 5% миграции.
Выход
Вы должны вывести три символа (без пробела, без разделителя), каждый из которых соответствует одному действию, которое вы выполните в этом ходу. Порядок символов определяет порядок действий. Вы можете выводить одни и те же действия несколько раз.
N
: Do N ичто
M
: Research M icrobiology [Эффекты: Снижение местной инфекции Оценить на 4%]
E
: Исследование E pidemiology [Эффекты: Снизить местную заразу Оценить на 8%]
I
: Исследованиях I mmunology [Эффекты: Снизить местное летальность Оценить на 4%]
V
: Исследования V accination [эффекты: Снижение местной инфекции Оценить один, уменьшить местные заразы Оценить на 4%, снизить местную летальность Оценить на 2%]
C
: Дайте C Юр [эффекты: Преобразование 10 местных Зараженные к здоровому ]
Q
: Q uarantine [Эффекты: Удалить 30 местные Зараженные ]
O
: О пере Границы [Эффекты: увеличение местной скорости миграции на 10%]
B
: Закрыть B заказов [Эффекты: Снижение местной скорости миграции на 10%]
T
: Bio T errorism [Эффекты: Преобразование- глобальный Healthy к Infected ]
W
: W eaponization [эффекты: Увеличение глобальной инфекции Оценить на 1, увеличение глобальной летальность Rate на 2%]
D
: D issemination [эффекты: увеличение глобальной инфекции Оценить1, увеличить глобальные заразы Rate на 2%]
P
: Р на 1%]acification [Эффекты: снижение общего уровня заражения на 1, уменьшение общего уровня заражения на 1%, уменьшение общего показателя летальности
Игровой процесс
Все фазы
Неверная команда = ничего
Процент добавляется как целые числа, то есть 10% - 4% = 6%. Когда проценты применяются в формуле, результат получается беспорядочным.
Фаза 1: Мутация
Пандемия становится все более сильной. Каждый ход он случайным образом получает один из следующих атрибутов (эта мутация затрагивает всех игроков одновременно):
- Увеличьте глобальный уровень заражения на 2
- Увеличьте глобальный уровень заражения на 5%
- Увеличение общего показателя летальности на 5%
Этап 2: Воспроизведение
Каждые пять раундов (5, 10, 15 ...) рождаются новые граждане. Каждая пара Здоровых сделает одного Здорового (23 Здоровых генерируют 11 новых Здоровых ). Каждая пара зараженных сделает одного зараженного .
Этап 3: Миграция
Каждый ход процент здоровых и зараженных покидает штаты в зависимости от уровня миграции (10 здоровых покидают штат со 100 здоровыми и 10 процентами миграции ). Затем мигранты будут распределены по каждому штату, опять же в зависимости от уровня миграции. . (Показатели каждого штата взвешены, и мигранты распределяются соответственно).
Фаза 4: Инфекция
Здоровые в каждом штате преобразуются в Зараженные , в соответствии с уровнем заражения .
Фаза 5: Заражение
Здоровые в каждом штате преобразуются в Зараженные , согласно коэффициенту заражения . Число рассчитывается путем умножения зараженных на коэффициент заражения .
Этап 6: Вымирание
Зараженные преобразуются в Мертвых , в соответствии с уровнем смертности . Число рассчитывается путем умножения зараженных на коэффициент смертности .
Фаза 7: ход игроков
Каждый игрок получает вход и должен вывести три действия, которые выполняются в порядке их вывода.
правила
- Боты не должны быть написаны, чтобы побеждать или поддерживать определенных других ботов.
- Запись в файлы разрешена. Пожалуйста, напишите «yoursubmissionname.txt», папка будет очищена перед началом игры. Другие внешние ресурсы запрещены.
- Ваше представление имеет одну секунду, чтобы ответить (в каждом городе).
- Предоставьте команды для компиляции и запуска ваших представлений.
выигрыш
Победителем считается тот, кто наиболее здоров после 50 раундов. Если игрок является последним живым (более 0 здоров или заражен ), игра останавливается и он выигрывает. Если у нескольких игроков одинаковое количество здоровых , победит тот , у кого больше всего зараженных , а у того, у кого меньше мертвых .
контроллер
Вы можете найти контроллер на GitHub . Он также содержит три примера ботов, написанных на Java.
Чтобы запустить его, проверьте проект и откройте его в вашей среде Java IDE. Точка входа в main
метод класса Game
. Java 8 требуется.
Чтобы добавить ботов, сначала вам потребуется либо скомпилированная версия для Java (файлы .class), либо исходные тексты для интерпретируемых языков. Поместите их в корневую папку проекта. Затем создайте новый класс Java в players
пакете (вы можете взять пример с уже существующими ботами). Этот класс должен реализовать, Player
чтобы переопределить методString getCmd()
. Возвращаемая строка - это команда оболочки для запуска ваших ботов. Например , вы можете сделать бот работу Ruby , с помощью этой команды: return "C:\Ruby\bin\ruby.exe MyBot.rb";
. Наконец, добавьте бота в players
массив в верхней части Game
класса.
Окончательные результаты (2016-03-04 08:22 GMT)
Глобал (100 репутации):
100 результатов игр: http://pasted.co/942200ff
1. EvilBot (24, 249, 436)
2. Triage (23, 538, 486)
3. WICKED (23, 537, 489)
4. Israel (23, 40, 240)
5. InfectedTown (22, 736, 482)
6. ZombieState (22, 229, 369)
7. Mooch (22, 87, 206)
8. InfectedHaven (21, 723, 483)
9. Crossroads (16, 9, 136)
10. TheKeeper (3, 4, 138)
11. Terrorist (0, 595, 496)
12. InfectionBot (0, 511, 430)
13. FamilyValues (0, 6, 291)
14. UndecidedBot (0, 0, 20)
15. XenoBot (0, 0, 26)
16. Researcher (0, 0, 33)
17. Strategist (0, 0, 42)
18. TheCure (0, 0, 55)
19. Socialist (0, 0, 67)
20. TrumpBot (0, 0, 77)
21. CullBot (0, 0, 81)
22. BackStabber (0, 0, 87)
23. BlunderBot (0, 0, 104)
24. RemoveInfected (0, 0, 111)
25. PFC (0, 0, 117)
26. BioterroristBot (0, 0, 118)
27. PassiveBot (0, 0, 118)
28. Smaug (0, 0, 118)
29. WeaponOfMassDissemination (0, 0, 119)
30. AllOrNothing (0, 0, 121)
31. Obamacare (0, 0, 122)
32. DisseminationBot (0, 0, 123)
33. CureThenQuarantine (0, 0, 125)
34. Madagascar (0, 0, 129)
35. OpenAndClose (0, 0, 129)
36. ThePacifist (0, 0, 130)
37. MedicBot (0, 0, 131)
38. Medic (0, 0, 133)
39. Salt (0, 0, 134)
40. Piecemeal (0, 0, 136)
41. Graymalkin (0, 0, 137)
42. PureBot (0, 0, 140)
43. MadScienceBot (0, 0, 144)
44. BipolarBot (0, 0, 149)
45. RedCross (0, 0, 151)
Doomsday-less (200 репутации):
100 результатов игр: http://pasted.co/220b575b
1. FamilyValues (5708, 14, 2)
2. BlunderBot (5614, 12, 3)
3. Graymalkin (5597, 17, 4)
4. PureBot (5550, 12, 5)
5. Crossroads (5543, 11, 4)
6. Salt (5488, 24, 7)
7. CureThenQuarantine (5453, 13, 7)
8. Piecemeal (5358, 121, 23)
9. TrumpBot (5355, 12, 5)
10. CullBot (5288, 12, 9)
11. AllOrNothing (5284, 13, 10)
12. Madagascar (5060, 180, 35)
13. TheKeeper (4934, 165, 44)
14. WICKED (4714, 25, 5)
15. Strategist (2266, 25, 5)
16. BackStabber (2180, 1327, 596)
17. RemoveInfected (2021, 33, 27)
18. OpenAndClose (1945, 667, 394)
19. Triage (1773, 401, 80)
20. TheCure (1465, 46, 26)
21. Obamacare (1263, 525, 247)
22. Mooch (1103, 546, 269)
23. Israel (1102, 580, 292)
24. RedCross (1086, 1700, 727)
25. ThePacifist (1069, 636, 580)
26. Researcher (1035, 113, 37)
27. UndecidedBot (825, 219, 93)
28. PassiveBot (510, 990, 567)
29. MedicBot (411, 1474, 667)
30. Medic (392, 1690, 619)
31. Socialist (139, 63, 90)
32. XenoBot (0, 82, 170)
Спасибо всем за участие. Я надеюсь, что вы потратили столько же времени на разработку и кодирование своих ботов, как и я на этой игре.