Confrontation 4 hommes
La description
Vous vous êtes en quelque sorte retrouvé dans une impasse à quatre voies. Un pistolet chargé repose dans vos mains et des grenades sont accrochées à votre ceinture.
L'objectif est d'avoir le plus de santé possible à la fin d'une impasse. Une impasse est terminée quand au plus une personne a une quantité positive de santé.
Chaque joueur a la 5
santé et meurt quand sa santé tombe à / en dessous 0
. Le tour d'un joueur qui meurt est le dernier tour que ce joueur peut subir.
S'il y a un joueur en direct à la fin d'une impasse, ce joueur gagne. Sinon, le joueur avec la santé la moins négative gagne.
Actions
Shoot : Tirez sur quelqu'un.
2
dégâts si vous tirez sur un ennemi vivant0
dégâts si vous tirez sur un ennemi morthealth_at_start_of_turn+2
dommage si vous tirez vous-même. (Notez que cela vous laissera avec la plupart des-2
soins de santé.)- Si un ennemi vous tire dessus au même tour que vous vous tirez vous-même, vous mettez fin à l'impasse avec -4 points de vie (vous subissez quand même des dégâts des autres joueurs le tour où vous vous tuez).
- Votre action au tour suivant sera ignorée (et supposée l'être
Nothing
).
Esquiver : Essayez d'esquiver le tir d'un seul adversaire.
Préparez : Décrochez votre grenade et préparez-vous à la lancer.
- Vous n'avez que trois tours pour le lancer, avant de vous faire exploser (vous infligez des
6
dégâts,3
tous les ennemis vivants sont endommagés) - Mourir avec une grenade non percée équivaut à ne pas lancer la grenade pendant trois tours.
- Vous n'avez que trois tours pour le lancer, avant de vous faire exploser (vous infligez des
Lancer : Lancez la grenade vers quelqu'un et espérez que tout ira pour le mieux.
- La cible subit des
8
dégâts si elle est en vie - Tous les autres (y compris vous-même) subissent des
3
dégâts s'ils sont en vie
- La cible subit des
Rien : restez les bras croisés et regardez tout le monde mourir.
Contribution
Votre programme recevra les informations suivantes:
- La santé de chaque joueur
Liste des actions entreprises par ce joueur depuis le début de la confrontation. Vous trouverez ci-dessous le format des informations transmises par joueur:
[Health],[Action 1],[Action 2],[Action 3],...
Les actions seront données dans le format spécifié dans la section Sortie .
Vous recevrez 4 telles chaînes, séparées par un espace et passées sous forme d'argument unique. L'ordre de ces chaînes est:
[Player Info] [Opponent 1 Info] [Opponent 2 Info] [Opponent 3 Info]
Les chaînes sont passées en tant que deuxième argument. Le premier argument contient un entier qui identifie de manière unique l’impasse en cours d’adoption. Les affrontements entre les mêmes joueurs sont garantis de ne pas être simultanés. Cependant, plusieurs impasses se produiront en même temps.
Par exemple:
$./Player.bash 5 "3,S2,N 5,P,N 3,S0,N -2,S3,N"
Actuellement, le joueur et le second adversaire ont 3 points de vie, le premier adversaire a 5 points de vie et le troisième adversaire a -2 points de vie et est mort.
Au premier tour:
- Joueur 1 tir ennemi 2
- Enemy 1 a préparé une grenade
- Enemy 2 tireur
- Enemy 3 s'est tiré une balle
Au deuxième tour:
- Tous les joueurs n'ont rien fait. (Le joueur et l'ennemi 2 ne peuvent rien faire puisqu'ils ont tiré au tour précédent. L'ennemi 3 est mort: il le fera
Nothing
pour le reste de l'impasse.)
Le second argument au début d'un bras de fer est: 5 5 5 5
.
Sortie
Une commande doit être sortie dans le format indiqué ci-dessous. Une sortie invalide est interprétée comme 'Nothing'. Une commande nécessitant une cible doit être suivie d'un entier ( 0-3
, avec 0
représentant le joueur et 1-3
représentant les ennemis 1 à 3).
S[target]
: Tire [cible].D[target]
: Essaie d'esquiver [cible].P
: Préparez une grenade.T[target]
: Lancer la grenade sur [cible].N
: Ne fais rien.
Une commande qui a besoin d'une cible, mais est alimentée avec une cible qui n'est pas entre 0
et 3
ou qui n'est pas alimentée entièrement avec une cible, sera supposée cibler 0
(le joueur).
Notation
À la fin de chaque confrontation, les joueurs reçoivent un score calculé selon la formule suivante:
35 + health at end of standoff
Dans le cas où un joueur se termine un bras de fer avec la santé négative, ils vont recevoir un score inférieur à 35 . Les points suivants sont également récompensés en bonus:
- Le plus de santé: +4 points
- Deuxième plus de points de vie: +2 points
- Troisième plus de santé: +1 point.
En cas d'égalité, le bonus le plus bas est accordé (si deux personnes sont associées avec le plus de points de vie, on leur attribue +2; si 3 personnes ont le plus de santé, +1 et si tout le monde finit à égalité, +0).
Le score final est déterminé en calculant la moyenne de tous les scores individuels.
Règles / Détails
- L'ordre des événements dans un tour est le suivant:
- Tous les joueurs font leurs actions.
- Les joueurs ayant 0 ou moins de santé meurent.
- Les grenades non tirées qui doivent exploser vont exploser (les joueurs qui viennent de mourir sont toujours blessés, car c'est toujours le tour où ils sont morts).
- Pas de collaboration entre les entrées.
- Trois * affrontements auront lieu entre chaque groupe de 4 joueurs. (L'ordre des joueurs peut varier d'une impasse à l'autre).
- Les entrées consommant une quantité excessive de mémoire d'espace disque seront disqualifiées.
- Lire ou modifier des fichiers autres que ceux de votre entrée entraînera sa disqualification.
- Un camion conduit par un ivrogne écrasera tous les joueurs en vie après le
50th
tournant, si le bras de fer n’est pas terminé à la fin du50th
tour.- Ce camion inflige 20 dégâts à tous les joueurs en direct.
- Les affrontements arrivent vite. Les programmes sont coupés après 1 seconde.
- Votre programme sera appelé à chaque tour, même après votre décès.
- Vous pouvez lire ou écrire des fichiers dans votre répertoire uniquement (si votre entrée s'appelle JohnDoe, vous pouvez enregistrer des fichiers dans le répertoire players / JohnDoe /); cependant, ce ne sera PAS le répertoire en cours pendant l'exécution de votre script.
- Les entretiens auront lieu sur une machine exécutant Arch Linux (version 2014.08.01).
Le contrôleur est disponible sur GitHub .
Veuillez inclure les éléments suivants dans votre message:
- Un nom pour votre bot
- Une commande shell pour exécuter le bot (ex.
java Doe.java
) L'entrée sera passée à travers la ligne de commande sous forme d'argument unique (java Doe.java 5 "-2,S0 -2,S1 -2,S2 5,N"
) - Code de votre bot
- Comment le bot doit être compilé (le cas échéant)
- Langue (et version si applicable, spécialement pour Python)
* Le contrôleur prend trop de temps pour six.
Tableau de bord
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
Journaux: sur GitHub