Einführung
Das Spiel spielt in einer kleinen Welt mit verschiedenen Städten. Die Herrscher der Städte hassen sich gegenseitig und möchten die Welt regieren. Die Menschen sind in zwei Gruppen eingeteilt, Krieger und Niedriggeborene. Niedriggeborene können sich jedoch zu Kriegern erheben. Sie sind der Herrscher über drei dieser Städte.
Gameplay
Wenn das Spiel beginnt, regieren Sie über drei Städte. In jeder Stadt leben 100 Menschen. Sie müssen sie in Ritter und Untergeborene aufteilen.
Dann beginnt das eigentliche Spiel, das rundenbasiert ist. Eine Runde sieht so aus: "Produce" knights
=> execute command of first town
=> execute command of next town
(Wiederholung für alle Städte) => try a rebellion
.
- In jeder Runde wird Ihr Programm für jede Stadt aufgerufen , die Ihnen gehört . Sie können entweder eine Stadt angreifen , unterstützen eine Stadt oder einfach warten . Diese Aktionen werden nacheinander und nicht gleichzeitig ausgeführt.
- In jeder dritten Runde erhält man einen Ritter pro 2 Untergeborenen (23 Untergeborene => 11 Ritter). Die Anzahl der Untergeborenen bleibt gleich.
- Ritter in einer Stadt haben einen Verteidigungsbonus von 1,2. Wenn Sie angegriffen werden, wird Ihre Ritter mit dieser Zahl multipliziert werden (zB Sie haben
78 knights
, müssen Sie93 knights
während des Angriffs). Nach dem Angriff werden die zusätzlichen Ritter entfernt (wenn Sie82 knights
überleben, haben Sie immer noch78 knights
). - Bei einem Angriff tötet jeder Ritter einen Feind, bevor er stirbt. Zum Beispiel:
30 knights
Angriff100 knights
(ohne Verteidigungsbonus) => 70 Ritter überleben. - Sie können eine Stadt erobern, indem Sie alle darin befindlichen Ritter töten . Alle Niedriggeborenen gehören dir und deine überlebenden Ritter sind in der Stadt stationiert. In der nächsten Runde kannst du diese Stadt zusätzlich zu all deinen anderen Städten regieren .
- Nachdem eine Stadt erobert wurde, erhält sie für 2 volle Runden keinen Verteidigungsbonus (da die Tore zerbrochen sind). In der dritten Runde werden die Tore repariert.
- Um zu verhindern, dass die Niedriggeborenen rebellieren, benötigen Sie mindestens die Hälfte der Ritter, die es gibt (23 Niedriggeborene in einer Stadt benötigen mindestens 12 Ritter in derselben Stadt). Andernfalls töten die Niedriggeborenen alle Ritter und die Stadt wird "neutral" (ohne einen Anführer, angegeben durch eine Spieler-ID
-1
). - Neutrale Städte "produzieren" Ritter, greifen aber keine andere Stadt an oder unterstützen sie.
Syntax
Die Steuerung stellt Ihnen die Eingabe über Befehlsargumente zur Verfügung, Ihr Programm muss sie über stdout ausgeben.
Ausgabe (Vorbereitung)
Bevor das Spiel startet, ruft der Controller Sie auf, ohne Argumente einzureichen. Das bedeutet, dass Sie Ihre 100 Leute (für jede Stadt) in Ritter und Niedriggeborene aufteilen müssen. Sie müssen zum KnightCount KnightCount KnightCount
Beispiel ausgeben 95 80 95
.
Eingabe
Round;YourPlayerId;YourTownId;PlayerId_TownId_knights_lowborns;PlayerId_TownId_knights_lowborns;...
In der ersten Runde wird dies so etwas wie sein
1;2;2;0_0_100_0;1_1_50_50;2_2_80_20
. Hier siehst du, es ist die erste Runde, du bist Spieler 2 in Stadt 2. Du hast 80 Ritter und 20 Niedriggeborene.
Später im Spiel könnte es so etwas wie sein 20;2;1;0_0_100_0;2_1_30_50;2_2_40_20
. Du bist immer noch Spieler 2 (dies ändert sich nie), aber du hast Stadt 1 erobert (die du gerade kontrollierst).
Ausgabe
A TownId NumberOfKnights
oder S TownId NumberOfKnights
oder W
(zum Warten).
Beispiel: A 2 100
(Angriffsstadt 2 mit 100 Rittern) oder S 3 2
(Stützstadt 3 mit 2 Rittern).
Regeln
- Bots sollten nicht geschrieben werden, um bestimmte andere Bots zu schlagen oder zu unterstützen.
- Das Schreiben in Dateien ist erlaubt. Bitte schreibe an " yoursubmissionname .txt", der Ordner wird vor Spielbeginn geleert. Andere externe Ressourcen sind nicht zulässig.
- Ihr Beitrag hat 1 Sekunde Zeit, um zu antworten (pro Stadt).
- Stellen Sie Befehle zum Kompilieren und Ausführen Ihrer Übermittlungen bereit.
Gewinnen
Gewinner ist der mit den meisten Städten nach 100 Runden. Wenn ein Spieler alle Städte erobert, stoppt das Spiel und er gewinnt. Wenn mehrere Spieler die gleiche Anzahl von Städten haben, zählt die Anzahl der Ritter und dann die Anzahl der Niedriggeborenen.
Regler
Sie finden den Controller auf Github. Es enthält auch 2 Beispielbots, die in Java geschrieben wurden. Öffnen Sie es in Eclipse, platzieren Sie die kompilierten Bots im Stammordner und fügen Sie dem Steuerungsprogramm eine Klasse hinzu (genau wie die Samplebots).
Ergebnisse
Für die Endergebnisse habe ich 10 Spiele gespielt. Dies ist der Durchschnitt:
Spieler-Städte 1. Befreier 37.5 2. Sehtimianer 8.2 3. SuperProducer 5.4 4. Sleeper 1.4 5. Frankenstein 1.2 6. Butter 0.8 (mehr Ritter) 7. TheKing 0.8 (weniger Ritter) 8. Exodus 0.6 9. Schildkröte 0.5 (mehr Ritter) 10. AttackOn3 0.5 (weniger Ritter) 11. Demokratie 0.3 12. CalculatedFail 0.2 13. Revolutionist 0.1
Sie können hier ein Beispielspiel lesen: Beispielspiel auf Github
A
eine andere Stadt unterstütztB
, die angegebene Anzahl von Rittern einfach vonA
nach übertragen wirdB
, wonach sie vom Eigentümer kontrolliert werdenB
, richtig?