Endgültige Ergebnisse sind da!
Einführung
Im Jahr 2042 ist die Welt übervölkert. Globalisierung, Überfüllung, neue Lebensstile und ein globaler Mangel an Hygiene haben eine neue Pandemie ausgelöst. In diesen schweren Zeiten müssen die Staatsoberhäupter die Situation meistern. Sie können nicht zulassen, dass Ihre Bevölkerung dezimiert wird, aber vielleicht können Sie davon profitieren, wenn Sie Ihre Nachbarn sterben lassen ...
Glossar
Gesunde : Menschen nicht infiziert
Infizierte : Menschen , die von der Pandemie sterben kann
Toten : Body zählen, keine besondere Wirkung (nur Scoring)
Infektionsrate : Anzahl der gesunden , die werden wird Infizierte jeder Umdrehung
Contagion Rate : Prozentsatz der Infizierte , die konvertiert gesund zu Infizierte
Tödliche Rate pro Runde : Prozentsatz der Infizierten , die in jeder Runde sterben.
Migrationsrate : Prozentsatz der Gesunden und Infizierten , die in jeder Runde auswandern / einwandern.
Lokal: Betrifft nur Ihren Bundesstaat
Global : Betrifft jeden Bundesstaat
Prinzip
Jeder der Spieler wird eine Stadt verwalten, beginnend mit 100 Personen . Leider ist unter ihnen einer Infiziert .
Das Spiel ist rundenbasiert. Eine Runde besteht aus sieben Phasen , von denen die letzte interaktiv ist (Bots nach einem Befehl fragen). Die Reihenfolge der Spieler wird in jeder Runde zufällig festgelegt. Die nächste Phase beginnt, wenn die vorherige Phase von jeder Stadt ausgeführt wurde (Runde 1: Spieler 1, Spieler 2, Spieler 3 ...; Runde 2: Spieler 3, Spieler 2, Spieler 1 ...):
1. Mutation - AUTOMATED
2. Reproduction - AUTOMATED
3. Migration - AUTOMATED
4. Infection - AUTOMATED
5. Contagion - AUTOMATED
6. Extinction - AUTOMATED
7. Players Turn - INTERACTIVE
Die Steuerung stellt Ihnen die Eingabe über Befehlsargumente zur Verfügung und Ihr Programm muss über stdout ausgeben.
Syntax
Eingang
Jedes Mal, wenn Ihr Programm aufgerufen wird, erhält es Argumente in folgendem Format:
Round;YourPlayerId;PlayerId_Healthy_Infected_Dead_InfectionRate_ContagionRate_LethalityRate_MigrationRate;PlayerId_Healthy_Infected_Dead_InfectionRate_ContagionRate_LethalityRate_MigrationRate;...
Runde sind 1-indiziert.
Beispiel Eingabe
6;2;1_106_23_9_2_4_13_5;0_20_53_62_16_20_35_5;2_20_53_62_16_20_35_5
Hier sehen Sie, es ist die 6. Runde und Sie sind Spieler 2. Sie haben 20 gesunde, 53 infizierte, 62 tote, 16% Infektionsrate, 20% Ansteckungsrate, 35% Letalitätsrate und 5% Migrationsrate.
Ausgabe
Sie müssen drei Zeichen (kein Leerzeichen, kein Trennzeichen) ausgeben, die jeweils einer Aktion entsprechen, die Sie in diesem Zug ausführen. Die Reihenfolge der Zeichen bestimmt die Reihenfolge der Aktionen. Sie können die gleichen Aktionen mehrfach ausgeben.
N
: Do N ichts
M
: Forschung M icrobiology [Effekte: local reduzieren Infektionsrate um 4%]
E
: Forschung E pidemiology [Effekte: Reduzieren lokale Contagion Rate von 8%]
I
: Forschung I mmunology [Effekte: local reduzieren Letalität um 4%]
V
: Forschung V accination [Effekte: reduzieren lokale Infektionsrate durch ein, reduzieren lokale Contagion Rate von 4% reduzieren lokale Letalität um 2%]
C
: geben Sie C ure [Effekte: 10 lokale Konvertieren Infizierte zu Healthy ]
Q
: Q uarantine [Effekte: 30 lokal infizierte entfernen ]
O
: O pen Borders [Effekte: Lokale Migrationsrate um 10% erhöhen ]
B
: Close B orders [Effekte: Lokale Migrationsrate um 10% verringern ]
T
: Bio T errorism [Effekte: Konvertieren 4 global gesund für Infizierte ]
W
: W affe [Effekte: Erhöhen Sie die globale Infektionsrate um 1, erhöhen Sie die globale Letalitätsrate um 2%]
D
: D issemination [Effekte: Erhöhen Sie die globale Infektionsrateum 1, Erhöhung der globalen Ansteckungsrate um 2%]
P
: P acification [Effekte: Verringerung der globalen Infektionsrate um 1, Verringerung der globalen Ansteckungsrate um 1%, Verringerung der globalen Letalitätsrate um 1%]
Spielweise
Alle Phasen
Ungültiger Befehl = Nichts
Prozentsatz wird wie ganze Zahlen addiert, dh 10% - 4% = 6%. Wenn Prozentsätze in einer Formel angewendet werden, ist das Ergebnis unbegrenzt.
Phase 1: Mutation
Die Pandemie wird immer schlimmer. In jedem Zug erhält es zufällig eines dieser Attribute (diese Mutation betrifft alle Spieler gleichzeitig):
- Erhöhen Sie die globale Infektionsrate um 2
- Erhöhung der globalen Ansteckungsrate um 5%
- Erhöhung der globalen Letalitätsrate um 5%
Phase 2: Reproduktion
Alle fünf Runden (Runde 5, 10, 15 ...) werden neue Bürger geboren. Jedes Paar von Gesund ergibt ein Gesund (23 Gesund ergeben 11 neue Gesund ). Jedes infizierte Paar macht ein infiziertes Paar .
Phase 3: Migration
In jeder Runde verlässt ein Prozentsatz von Gesund und Infiziert den Staat, abhängig von ihrer Migrationsrate (10 Gesund verlassen einen Staat mit 100 Gesund und 10% Migrationsrate ). Dann werden die Migranten, wiederum abhängig von der Migrationsrate, auf alle Bundesstaaten verteilt . (Die Quoten der einzelnen Staaten werden gewichtet und die Migranten entsprechend verteilt.)
Phase 4: Infektion
Fehlerfrei in jedem Status werden entsprechend der Infektionsrate in Infiziert umgewandelt .
Phase 5: Ansteckung
Jeder Zustand, in dem er gesund ist , wird entsprechend der Ansteckungsrate in " Infiziert" umgewandelt . Die Zahl wird berechnet, indem die Infizierte mit der Ansteckungsrate multipliziert wird .
Phase 6: Aussterben
Infizierte werden gemäß der Letalitätsrate in Tote umgewandelt . Die Zahl wird berechnet, indem die Infizierte mit der Letalitätsrate multipliziert wird .
Phase 7: Spieler sind an der Reihe
Jeder Spieler erhält Eingaben und muss drei Aktionen ausgeben, die in der Reihenfolge ausgeführt werden, in der sie ausgegeben werden.
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.
- Ihre Eingabe hat eine Sekunde Zeit, um zu antworten (pro Stadt).
- Stellen Sie Befehle zum Kompilieren und Ausführen Ihrer Übermittlungen bereit.
Gewinnen
Gewinner ist derjenige mit den meisten Gesunden nach 50 Runden. Wenn ein Spieler zuletzt am Leben ist (mehr als 0 gesund oder infiziert ), wird das Spiel abgebrochen und er gewinnt. Wenn mehrere Spieler die gleiche Anzahl an Gesunden haben , gewinnt der mit den meisten Infizierten und der mit den weniger Toten .
Regler
Sie finden den Controller auf GitHub . Es enthält auch drei in Java geschriebene Beispielbots.
Überprüfen Sie das Projekt, und öffnen Sie es in Ihrer Java-IDE, damit es ausgeführt wird. Der Einstiegspunkt in die main
Methode der Klasse Game
. Java 8 erforderlich.
Zum Hinzufügen von Bots benötigen Sie zunächst entweder die kompilierte Version für Java (.class-Dateien) oder die Quellen für interpretierte Sprachen. Platzieren Sie sie im Stammverzeichnis des Projekts. Erstellen Sie dann eine neue Java-Klasse im players
Paket (Sie können ein Beispiel für die bereits vorhandenen Bots verwenden). Diese Klasse muss implementiert werden Player
, um die Methode zu überschreiben String getCmd()
. Der zurückgegebene String ist der Shell-Befehl zum Ausführen Ihrer Bots. Sie können zum Beispiel eine Ruby - Bot Arbeit mit diesem Befehl machen: return "C:\Ruby\bin\ruby.exe MyBot.rb";
. Fügen Sie schließlich den Bot in das players
Array oben in der Game
Klasse ein.
Endgültige Ergebnisse (2016-03-04 08:22 GMT)
Global (100 Ruf):
100 Spielergebnisse: http://pasted.co/942200ff
1. EvilBot (24, 249, 436)
2. Triage (23, 538, 486)
3. WICKED (23, 537, 489)
4. Israel (23, 40, 240)
5. InfectedTown (22, 736, 482)
6. ZombieState (22, 229, 369)
7. Mooch (22, 87, 206)
8. InfectedHaven (21, 723, 483)
9. Crossroads (16, 9, 136)
10. TheKeeper (3, 4, 138)
11. Terrorist (0, 595, 496)
12. InfectionBot (0, 511, 430)
13. FamilyValues (0, 6, 291)
14. UndecidedBot (0, 0, 20)
15. XenoBot (0, 0, 26)
16. Researcher (0, 0, 33)
17. Strategist (0, 0, 42)
18. TheCure (0, 0, 55)
19. Socialist (0, 0, 67)
20. TrumpBot (0, 0, 77)
21. CullBot (0, 0, 81)
22. BackStabber (0, 0, 87)
23. BlunderBot (0, 0, 104)
24. RemoveInfected (0, 0, 111)
25. PFC (0, 0, 117)
26. BioterroristBot (0, 0, 118)
27. PassiveBot (0, 0, 118)
28. Smaug (0, 0, 118)
29. WeaponOfMassDissemination (0, 0, 119)
30. AllOrNothing (0, 0, 121)
31. Obamacare (0, 0, 122)
32. DisseminationBot (0, 0, 123)
33. CureThenQuarantine (0, 0, 125)
34. Madagascar (0, 0, 129)
35. OpenAndClose (0, 0, 129)
36. ThePacifist (0, 0, 130)
37. MedicBot (0, 0, 131)
38. Medic (0, 0, 133)
39. Salt (0, 0, 134)
40. Piecemeal (0, 0, 136)
41. Graymalkin (0, 0, 137)
42. PureBot (0, 0, 140)
43. MadScienceBot (0, 0, 144)
44. BipolarBot (0, 0, 149)
45. RedCross (0, 0, 151)
Weltuntergangslos (200 Ruf):
100 Spielergebnisse: http://pasted.co/220b575b
1. FamilyValues (5708, 14, 2)
2. BlunderBot (5614, 12, 3)
3. Graymalkin (5597, 17, 4)
4. PureBot (5550, 12, 5)
5. Crossroads (5543, 11, 4)
6. Salt (5488, 24, 7)
7. CureThenQuarantine (5453, 13, 7)
8. Piecemeal (5358, 121, 23)
9. TrumpBot (5355, 12, 5)
10. CullBot (5288, 12, 9)
11. AllOrNothing (5284, 13, 10)
12. Madagascar (5060, 180, 35)
13. TheKeeper (4934, 165, 44)
14. WICKED (4714, 25, 5)
15. Strategist (2266, 25, 5)
16. BackStabber (2180, 1327, 596)
17. RemoveInfected (2021, 33, 27)
18. OpenAndClose (1945, 667, 394)
19. Triage (1773, 401, 80)
20. TheCure (1465, 46, 26)
21. Obamacare (1263, 525, 247)
22. Mooch (1103, 546, 269)
23. Israel (1102, 580, 292)
24. RedCross (1086, 1700, 727)
25. ThePacifist (1069, 636, 580)
26. Researcher (1035, 113, 37)
27. UndecidedBot (825, 219, 93)
28. PassiveBot (510, 990, 567)
29. MedicBot (411, 1474, 667)
30. Medic (392, 1690, 619)
31. Socialist (139, 63, 90)
32. XenoBot (0, 82, 170)
Vielen Dank für Ihre Teilnahme. Ich hoffe, Sie hatten so viel Spaß beim Entwerfen und Codieren Ihrer Bots wie ich beim Ausführen des Spiels.