4-Mann-Abstandshalter
Beschreibung
Sie sind irgendwie in eine Vier-Wege-Situation geraten. Eine geladene Waffe liegt in Ihren Händen und einige Granaten sind am Gürtel eingehakt.
Das Ziel ist es, am Ende einer Pattsituation die meiste Gesundheit zu haben. Eine Pattsituation ist beendet, wenn höchstens eine Person einen positiven Gesundheitszustand aufweist.
Jeder Spieler hat 5
Gesundheit und stirbt, wenn seine Gesundheit auf / unter sinkt 0
. Der Zug, an dem ein Spieler stirbt, ist der letzte Zug, an dem der Spieler Schaden erleiden kann.
Wenn sich am Ende eines Abstands ein Live-Spieler befindet, gewinnt dieser Spieler. Andernfalls gewinnt der Spieler mit der geringsten negativen Gesundheit.
Aktionen
Schießen : Schießen Sie auf jemanden.
2
Schaden, wenn ein lebender Feind erschossen wird0
Schaden, wenn ein toter Feind erschossen wirdhealth_at_start_of_turn+2
Schaden, wenn Sie sich selbst erschießen. (Beachten Sie, dass dies Sie mit am meisten-2
Gesundheit verlassen wird.)- Wenn ein Feind in der gleichen Runde, in der Sie selbst geschossen haben, auf Sie schießt, haben Sie -4 Lebenspunkte.
- Deine Aktion in der folgenden Runde wird ignoriert (und als solche angenommen
Nothing
).
Ausweichen : Versuchen Sie, dem Schuss eines einzelnen Gegners auszuweichen.
Vorbereiten : Hängen Sie Ihre Granate aus und bereiten Sie das Werfen vor.
- Du hast nur drei Runden Zeit, um es zu werfen, bevor du in die Luft gejagt wirst (
6
Schaden an dir selbst,3
Schaden an allen lebenden Feinden) - Das Sterben mit einer nicht geworfenen Granate bedeutet, die Granate drei Runden lang nicht zu werfen.
- Du hast nur drei Runden Zeit, um es zu werfen, bevor du in die Luft gejagt wirst (
Werfen : Spann die Granate auf jemanden und hoffe auf das Beste.
- Das Ziel erhält
8
Schaden, wenn es lebt - Jeder andere (auch Sie selbst)
3
erleidet Schaden, wenn er lebt
- Das Ziel erhält
Nichts : Warte eine Weile und beobachte, wie alle sterben.
Eingang
Ihrem Programm werden folgende Informationen übermittelt:
- Die Gesundheit jedes Spielers
Eine Liste der Aktionen, die dieser Spieler seit Beginn des Standoffs ausgeführt hat. Nachfolgend finden Sie das Format für die pro Spieler übergebenen Informationen:
[Health],[Action 1],[Action 2],[Action 3],...
Aktionen werden in dem Format angegeben, das im Abschnitt Ausgabe angegeben ist.
Sie erhalten 4 solche Zeichenfolgen, die durch ein Leerzeichen getrennt und als einzelnes Argument übergeben werden. Die Reihenfolge dieser Zeichenfolgen lautet:
[Player Info] [Opponent 1 Info] [Opponent 2 Info] [Opponent 3 Info]
Die Zeichenfolgen werden als zweites Argument übergeben. Das erste Argument enthält eine Ganzzahl, die den aktivierten Abstand eindeutig identifiziert. Es ist garantiert, dass die Abstände zwischen derselben Gruppe von Spielern nicht gleichzeitig sind. Jedoch mehrere Abstandshalter werden zur gleichen Zeit auftreten.
Zum Beispiel:
$./Player.bash 5 "3,S2,N 5,P,N 3,S0,N -2,S3,N"
Derzeit haben der Spieler und der zweite Gegner 3 Gesundheitspunkte, der erste Gegner hat 5 Gesundheitspunkte und der dritte Gegner hat -2 Gesundheitspunkte und ist tot.
In der ersten Runde:
- Spieler 1 hat Feind 2 erschossen
- Feind 1 bereitete eine Granate vor
- Gegnerischer 2-Schuss-Spieler
- Feind 3 erschoss sich
In der zweiten Runde:
- Alle Spieler haben nichts getan. (Spieler und Feind 2 können nichts tun, da sie in der vorherigen Runde geschossen haben. Feind 3 ist tot: Er wird
Nothing
für den Rest der Distanz sorgen.)
Das zweite Argument zu Beginn einer Pattsituation ist: 5 5 5 5
.
Ausgabe
Ein Befehl sollte im unten aufgeführten Format ausgegeben werden. Eine ungültige Ausgabe wird als 'Nothing' interpretiert. Einem Befehl, der ein Ziel erfordert, sollte eine Ganzzahl folgen ( 0-3
mit der 0
Darstellung des Spielers und der 1-3
Darstellung der Feinde 1-3).
S[target]
: Schießt [Ziel].D[target]
: Versucht, [Ziel] auszuweichen.P
: Bereite eine Granate vor.T[target]
: Wirf die Granate auf [Ziel].N
: Nichts tun.
Ein Befehl, der ein Ziel benötigt, dem jedoch ein Ziel zugeführt wird, das nicht zwischen dem Ziel 0
und / 3
oder einem Ziel liegt, wird als Ziel angenommen 0
(der Spieler).
Wertung
Am Ende jeder Auseinandersetzung erhalten die Spieler eine Punktzahl, die nach der folgenden Formel berechnet wird:
35 + health at end of standoff
Im Fall , dass ein Spieler eine Pattsituation mit negativen gesundheitlichen endet, sie wird eine Punktzahl erhält unter 35 . Die folgenden Punkte werden ebenfalls als Bonus belohnt:
- Meiste Gesundheit: +4 Punkte
- Zweithäufigste Gesundheit: +2 Punkte
- Drittgrößte Gesundheit: +1 Punkt.
Im Falle eines Gleichstands wird der niedrigere Bonus gewährt (bei einem Gleichstand mit zwei Personen mit der höchsten Gesundheit erhalten beide +2; bei drei Personen mit der höchsten Gesundheit +1 und wenn alle gleichermaßen enden, +0).
Die endgültige Punktzahl wird durch Berechnung des Mittelwerts aller Einzelpunktzahlen ermittelt.
Regeln / Details
- Die Reihenfolge der Ereignisse innerhalb einer Runde ist wie folgt:
- Alle Spieler machen ihre Aktionen.
- Spieler mit 0 oder weniger Lebenspunkten sterben.
- Nicht geworfene Granaten, die explodieren müssen, werden explodieren (Spieler, die gerade gestorben sind, sind immer noch verletzt, da sie noch an der Reihe sind, zu sterben).
- Keine Zusammenarbeit zwischen Einträgen.
- Drei * Abstände treten zwischen jedem Satz von 4 Spielern auf. (Die Reihenfolge der Spieler kann mit jedem Standoff variieren.)
- Einträge, die übermäßig viel Speicherplatz beanspruchen, werden disqualifiziert.
- Das Lesen oder Ändern von Dateien, die nicht zu Ihren Einträgen gehören, disqualifiziert Ihren Eintrag.
- Ein von einem Betrunkenen gefahrener LKW überfährt nach dem
50th
Zug alle lebenden Spieler , wenn die Pattsituation am Ende des50th
Zuges noch nicht vorbei ist .- Dieser LKW fügt allen lebenden Spielern 20 Schadenspunkte zu.
- Standoffs passieren schnell. Programme werden nach 1 Sekunde abgebrochen.
- Ihr Programm wird in jeder Runde aufgerufen, auch nachdem Sie gestorben sind.
- Sie können nur Dateien in Ihr Verzeichnis lesen oder schreiben (wenn Ihr Eintrag den Namen JohnDoe trägt, können Sie Dateien im Verzeichnis player / JohnDoe / speichern). Dies ist jedoch NICHT das aktuelle Verzeichnis, während Ihr Skript ausgeführt wird.
- Die Abstände finden auf einem Computer statt, auf dem Arch Linux ausgeführt wird (Release 2014.08.01).
Der Controller ist auf GitHub verfügbar .
Bitte fügen Sie Ihrem Beitrag Folgendes bei:
- Ein Name für Ihren Bot
- Ein Shell-Befehl zum Ausführen des Bots (z.
java Doe.java
B.). Die Eingabe wird als einzelnes Argument (java Doe.java 5 "-2,S0 -2,S1 -2,S2 5,N"
) über die Befehlszeile übergeben. - Code Ihres Bots
- Wie der Bot kompiliert werden soll (falls zutreffend)
- Sprache (und ggf. Version, insbesondere für Python)
* Controller dauert viel zu lange für sechs.
Anzeigetafel
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
Protokolle: auf GitHub