Противостояние 4-х человек
Описание
Вы как-то оказались в четырехстороннем противостоянии. Заряженное ружье лежит в ваших руках, а некоторые гранаты зацеплены за ваш ремень.
Цель состоит в том, чтобы иметь больше здоровья в конце противостояния. Противостояние заканчивается, когда максимум один человек имеет положительное количество здоровья.
У каждого игрока есть 5
здоровье, и он умирает, когда его здоровье падает до / ниже 0
. Ход игрока умирает - это последний ход, когда игрок может получить урон.
Если в конце противостояния есть живой игрок, этот игрок выигрывает. В противном случае выигрывает игрок с наименьшим отрицательным здоровьем.
действия
Стреляй : сделай выстрел в кого-нибудь.
2
урон при стрельбе по живому врагу0
урон, если застрелить мертвого врагаhealth_at_start_of_turn+2
повреждение при стрельбе в себя (Обратите внимание, что это оставит вас на-2
здоровье.)- Если один враг стреляет в вас в тот же ход, когда вы стреляете в себя, вы прекратите противостояние с -4 ед. Здоровья (вы по-прежнему получаете урон от других игроков в тот ход, когда убиваете себя).
- Ваше действие в следующем ходу будет проигнорировано (и предполагается, что будет
Nothing
).
Dodge : попытаться увернуться от единственного выстрела противника.
Приготовьтесь : отцепите гранату и приготовьтесь бросить ее.
- У вас есть только три хода, чтобы бросить его, прежде чем вас взорвут (
6
урон себе,3
урон всем живым врагам) - Умереть с не брошенной гранатой равносильно тому, чтобы не бросать гранату в течение трех ходов.
- У вас есть только три хода, чтобы бросить его, прежде чем вас взорвут (
Бросьте : бросьте гранату в сторону кого-то и надейтесь на лучшее.
- Цель получает
8
урон, если жива - Все остальные (включая вас) получают
3
урон, если они живы
- Цель получает
Ничего : постой на ходу и смотри, как все умирают.
вход
Ваша программа будет передана следующая информация:
- Здоровье каждого игрока
Список действий, предпринятых этим игроком с момента начала противостояния. Ниже приведен формат информации, передаваемой на игрока:
[Health],[Action 1],[Action 2],[Action 3],...
Действия будут предоставлены в формате, указанном в разделе « Вывод ».
Вы получите 4 такие строки, разделенные пробелом и переданные в качестве одного аргумента. Порядок этих строк:
[Player Info] [Opponent 1 Info] [Opponent 2 Info] [Opponent 3 Info]
Строки передаются как второй аргумент. Первый аргумент содержит целое число, которое однозначно идентифицирует вводимое противостояние. Противостояние между одним и тем же набором игроков гарантированно не будет одновременным. Тем не менее, несколько противостояний будут происходить одновременно.
Например:
$./Player.bash 5 "3,S2,N 5,P,N 3,S0,N -2,S3,N"
В настоящее время у игрока и второго противника 3 здоровья, у первого противника 5 единиц здоровья, а у третьего противника -2 здоровья, и он мертв.
На первом повороте:
- Игрок 1 выстрелил враг 2
- Враг 1 подготовил гранату
- Враг 2 выстрелил игрок
- Враг 3 застрелился
На втором повороте:
- Все игроки ничего не сделали. (Игрок и враг 2 не могут ничего сделать, так как они стреляли в предыдущем ходу. Враг 3 мертв: он сделает
Nothing
для остальной части противостояния.)
Второй аргумент в начале противостояния является: 5 5 5 5
.
Выход
Команда должна быть выведена в указанном ниже формате. Неверный вывод интерпретируется как «Ничего». За командой, требующей цели, должно следовать целое число ( 0-3
с 0
представлением игрока и 1-3
представлением врагов 1-3).
S[target]
: Стреляет [цель].D[target]
Пытается увернуться [цель].P
: Подготовить гранату.T[target]
: Бросить гранату в [цель].N
: Ничего не делать.
Команда , которая нуждается в цели, но подается цель не между 0
и 3
или не подается целью полностью будет предполагаться целями 0
(игрок).
счет
В конце каждого противостояния игроки получают очки, рассчитанные по следующей формуле:
35 + health at end of standoff
В том случае, когда игрок заканчивает противостояние с негативным последствиями для здоровья, они будут получать балл ниже 35 . Следующие очки также начисляются в качестве бонуса:
- Больше всего здоровья: +4 балла
- На втором месте здоровье: +2 балла
- Третье место по здоровью: +1 балл.
В случае ничьей предоставляется меньший бонус (если два человека имеют наибольшее количество здоровья, оба получают +2; если есть 3 человека с наибольшим количеством здоровья, +1, и если все заканчиваются одинаково, +0).
Окончательный результат определяется путем расчета среднего значения всех индивидуальных показателей.
Правила / Подробнее
- Порядок событий в очереди:
- Все игроки делают свои действия.
- Игроки, у которых 0 или меньше здоровья, умирают.
- Не брошенные гранаты, которые должны взорваться, взорвутся (игроки, которые только что умерли, все еще получают травмы, так как это еще ход, в котором они погибли)
- Нет сотрудничества между записями.
- Три * противостояния будут происходить между каждым набором из 4 игроков. (Порядок игроков может меняться с каждым противостоянием).
- Записи, занимающие чрезмерное количество памяти на диске, будут дисквалифицированы.
- Чтение или изменение файлов, отличных от вашей записи, приведет к дисквалификации вашей записи.
- Грузовик, которым управляет пьяница, обгонит всех живых игроков после
50th
хода, если в конце хода противостояние еще не закончилось50th
.- Этот грузовик наносит 20 урона всем живым игрокам.
- Противостояние происходит быстро. Программы отключаются через 1 секунду.
- Ваша программа будет вызываться каждый ход, даже после вашей смерти.
- Вы можете читать или записывать файлы только в свой каталог (если ваша запись называется JohnDoe, вы можете сохранять файлы в каталоге Players / JohnDoe /); однако это НЕ будет текущим каталогом во время работы вашего скрипта.
- Противоборство будет происходить на компьютере под управлением Arch Linux (выпуск 2014.08.01).
Контроллер доступен на GitHub .
Пожалуйста, включите в свой пост следующее:
- Имя для вашего бота
- Команда оболочки для запуска бота (напр.
java Doe.java
) Ввод будет передаваться через командную строку как один аргумент (java Doe.java 5 "-2,S0 -2,S1 -2,S2 5,N"
) - Код вашего бота
- Как должен быть скомпилирован бот (если применимо)
- Язык (и версия, если применимо, особенно для python)
* Контроллер занимает слишком много времени для шести.
Табло
Observer 43.280570409982
MuhammadAli 43.134861217214
Osama 43.031983702572
LateBoomer 42.560275019099
SimpleShooter 42.412885154062
LessSimpleShooter 42.3772
Neo 42.3738
Scared 42.3678
Richochet 42.3263
Equivocator 42.2833
TwentyFourthsAndAHalfCentury 42.2640
Darwin 42.1584
HanSolo 42.1025
Coward 42.0458
ManipulativeBastard 41.8948
Sadist 41.7232
Aggressor 41.7058
CourageTheDog 41.5629
Grenadier 40.9889
Bomberman 40.8840
Spock 40.8713
Sniper 40.6346
DONTNUKEMEBRO 39.8151
PriorityTargets 39.6126
Hippolyta 39.2480
EmoCowboy 39.2069
Zaenille 39.1971
AntiGrenadier 39.1919
PoliticallyCorrectGunman 39.1689
InputAnalyzer 39.1517
Rule0Bot 39.1000
BiasedOne 39.0664
Pacifist 39.0481
StraightShooter 39.0292
Ninja 38.7801
MAD 38.2543
Monkey 37.7089
Label1Goto1 36.2131
Generated: 2014/08/22 03:56:13.470264860 UTC
Логи: на GitHub