4-Man Standoff
Descrizione
Ti sei in qualche modo trovato in una situazione di stallo a quattro vie. Una pistola carica riposa nelle tue mani e alcune granate sono agganciate alla cintura.
L'obiettivo è quello di avere più salute alla fine di una situazione di stallo. Una situazione di stallo è finita quando al massimo una persona ha una buona quantità di salute.
Ogni giocatore ha 5
salute e muore quando la sua salute scende al di sotto / al di sotto 0
. Il turno in cui un giocatore muore è l'ultimo turno in cui il giocatore può subire danni.
Se c'è un giocatore dal vivo alla fine di uno stallo, quel giocatore vince. Altrimenti, vince il giocatore con la salute meno negativa.
Azioni
Spara : sparare a qualcuno.
2
danno se spara a un nemico vivo0
danno se spara a un nemico mortohealth_at_start_of_turn+2
danni se ti spari. (Nota che questo ti lascerà in PIÙ-2
salute.)- Se un nemico ti spara nello stesso turno in cui ti spari, finirai lo stallo con -4 di salute (subisci comunque danni da altri giocatori nel turno in cui ti uccidi).
- La tua azione nel turno seguente verrà ignorata (e si presume che sia
Nothing
).
Dodge : prova a schivare il tiro di un singolo avversario.
Prepara : sgancia la granata e preparati a lanciarla.
- Hai solo tre turni per lanciarlo, prima di essere fatto saltare in aria (
6
danno a te stesso,3
danno a tutti i nemici vivi) - Morire con una granata non gettata equivale a non lanciare la granata per tre turni.
- Hai solo tre turni per lanciarlo, prima di essere fatto saltare in aria (
Lancia : lancia la granata verso qualcuno e spera per il meglio.
- Il bersaglio riceve
8
danno se è vivo - Tutti gli altri (incluso te stesso) ricevono
3
danni se vivi
- Il bersaglio riceve
Niente : resta fermo per un turno e guarda morire tutti.
Ingresso
Il tuo programma riceverà le seguenti informazioni:
- La salute di ogni giocatore
Un elenco di azioni intraprese da quel giocatore dall'inizio dello standoff Di seguito è riportato il formato delle informazioni trasmesse per giocatore:
[Health],[Action 1],[Action 2],[Action 3],...
Le azioni verranno eseguite nel formato specificato nella sezione Output .
Riceverai 4 di queste stringhe, separate da uno spazio e passate come un singolo argomento. L'ordine di queste stringhe è:
[Player Info] [Opponent 1 Info] [Opponent 2 Info] [Opponent 3 Info]
Le stringhe vengono passate come secondo argomento. Il primo argomento contiene un numero intero che identifica in modo univoco lo stallo in atto. I contrasti tra lo stesso gruppo di giocatori sono garantiti non simultanei. Tuttavia, si verificheranno più distacchi contemporaneamente.
Per esempio:
$./Player.bash 5 "3,S2,N 5,P,N 3,S0,N -2,S3,N"
Attualmente, il giocatore e il secondo avversario hanno 3 punti salute, il primo avversario ha 5 punti salute e il terzo avversario ha -2 punti salute ed è morto.
Al primo turno:
- Il giocatore 1 ha sparato al nemico 2
- Il nemico 1 ha preparato una granata
- Giocatore nemico con 2 colpi
- Il nemico 3 si è sparato
Al secondo turno:
- Tutti i giocatori non hanno fatto nulla. (Il giocatore e il nemico 2 non possono fare nulla da quando hanno sparato nel turno precedente. Il nemico 3 è morto: lo farà
Nothing
per il resto dello stallo.)
Il secondo argomento all'inizio di una situazione di stallo è: 5 5 5 5
.
Produzione
Un comando deve essere emesso nel formato sotto elencato. Un output non valido viene interpretato come "Niente". Un comando che richiede un bersaglio dovrebbe essere seguito da un numero intero ( 0-3
, con 0
rappresentare il giocatore e 1-3
rappresentare i nemici 1-3).
S[target]
: Spara [bersaglio].D[target]
: Cerca di schivare [bersaglio].P
: Prepara una granata.T[target]
: Lancia la granata contro [bersaglio].N
: Fare niente.
Un comando che richiede un bersaglio, ma viene alimentato un bersaglio non tra 0
e 3
o non alimentato un obiettivo interamente sarà assunta al bersaglio 0
(lettore).
punteggio
Alla fine di ogni situazione di stallo, i giocatori ricevono un punteggio calcolato con la seguente formula:
35 + health at end of standoff
Nel caso in cui un giocatore si conclude una situazione di stallo con la salute negativi, essi saranno ricevere un punteggio inferiore a 35 . I seguenti punti vengono inoltre premiati come bonus:
- Più salute: +4 punti
- Secondo maggior salute: +2 punti
- Terza maggior parte della salute: +1 punto.
In caso di pareggio, viene concesso il bonus inferiore (se due persone legano con la maggior parte della salute, entrambi ricevono +2; se ci sono 3 persone con la maggior salute, +1 e se tutti finiscono allo stesso modo, +0).
Il punteggio finale viene determinato calcolando la media di tutti i punteggi individuali.
Regole / Dettagli
- L'ordine degli eventi all'interno di un turno è il seguente:
- Tutti i giocatori fanno le loro azioni.
- I giocatori che hanno 0 o meno punti vita.
- Le granate non gettate che devono esplodere esploderanno (i giocatori che sono appena morti sono ancora feriti, poiché questo è ancora il turno in cui sono morti).
- Nessuna collaborazione tra le voci.
- Tra ogni set di 4 giocatori si verificheranno tre * stand-off. (L'ordine dei giocatori può variare con ogni situazione di stallo).
- Le voci che consumano quantità eccessive di memoria dello spazio su disco verranno squalificate.
- La lettura o la modifica di file diversi da quelli immessi squalificherà la voce.
- Un camion, guidato da un ubriacone, investirà tutti i giocatori viventi dopo il
50th
turno, se lo stallo non è ancora terminato alla fine del50th
turno.- Questo camion infligge 20 danni a tutti i giocatori dal vivo.
- I conflitti si verificano rapidamente. I programmi vengono interrotti dopo 1 secondo.
- Il tuo programma verrà chiamato ad ogni turno, anche dopo la tua morte.
- Puoi leggere o scrivere file solo nella tua directory (se la tua voce si chiama JohnDoe, puoi salvare i file nella directory player / JohnDoe /); tuttavia, questa NON sarà la directory corrente mentre lo script è in esecuzione.
- Gli standoff si svolgeranno su una macchina che esegue Arch Linux (versione 2014.08.01).
Il controller è disponibile su GitHub .
Ti preghiamo di includere quanto segue nel tuo post:
- Un nome per il tuo bot
- Un comando shell per eseguire il bot (es.
java Doe.java
) L'input verrà passato attraverso la riga di comando come un singolo argomento (java Doe.java 5 "-2,S0 -2,S1 -2,S2 5,N"
) - Codice del tuo bot
- Come compilare il bot (se applicabile)
- Lingua (e versione se applicabile, specialmente per Python)
* Il controller impiega troppo tempo per sei.
tabellone segnapunti
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
Registri: su GitHub