4-Чоловік Стандофф
Опис
Ви якось опинилися в протистоянні в чотири сторони. Завантажений пістолет лежить у ваших руках, а на вашому поясі зачеплені деякі гранати.
Мета полягає в тому, щоб мати найбільше здоров'я в кінці протистояння. Протистояння закінчилося, коли максимум одна людина має позитивний стан здоров'я.
Кожен гравець має 5
здоров'я та вмирає, коли стан здоров'я падає до / нижче 0
. Поворот гравця помирає - це останній крок, за який гравець може отримати шкоду.
Якщо в кінці протистояння є гравець у прямому ефірі, той грає. В іншому випадку виграє гравець з найменшим негативним здоров’ям.
Дії
Стріляйте : знімайте когось.
2
пошкодження при стрільбі з живого ворога0
шкода, якщо стріляти по мертвому ворогуhealth_at_start_of_turn+2
пошкодження, якщо стріляти самостійно. (Зверніть увагу, що це залишить вас в НАЙКРАЩОМУ-2
здоров'ї.)- Якщо один ворог стріляє в тебе в той же поворот, коли ти стріляєш сам, ти закінчиш протистояння з -4 здоров’ям (ти все одно спричиняєш шкоду від інших гравців, по черзі яких ти вбиваєш).
- Ваша дія наступної черги буде проігноровано (і вважатиметься таким
Nothing
).
Додж : Спробуйте ухилитися від удару одного суперника.
Підготуйтеся : зніміть гранату і підготуйтеся кинути її.
- У вас є лише три обороти, щоб кинути його, перш ніж ви підірветеся (
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, ви можете зберігати файли в програвачі програвачів / 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