Les résultats finaux sont ici!
introduction
En 2042, le monde est devenu surpeuplé. La mondialisation, la surpopulation carcérale, les nouveaux modes de vie et le manque général d’hygiène ont entraîné la propagation d’une nouvelle pandémie. En ces temps difficiles, les chefs d’État doivent gérer la situation. Vous ne pouvez pas laisser votre population être décimée, mais peut-être que vous pourriez en bénéficier en laissant mourir vos voisins ...
Glossaire
Santé : Les gens ne sont pas infectés
Infected : Les gens qui peuvent mourir de la pandémie
Morte : Body Count, aucun effet particulier (seulement scoring)
Taux d'infection : Nombre de santé qui deviendra Infected chaque tour
Contagion Taux : Pourcentage de Infected qui convertira en santé à Infected chaque tour
létalité Taux : Pourcentage de Infected qui meurent chaque tour
Taux de migration : Pourcentage des deux sains et Infected qui émigrent / immigrent chaque tour
local: Affecte uniquement votre état
Global : affecte tous les états
Principe
Chacun des joueurs gérera une ville, en commençant par 100 personnes . Malheureusement, parmi eux se trouve un infecté .
Le jeu est basé sur tour par tour. Un tour se compose de sept phases , la dernière étant interactive (demander aux robots de commander). L'ordre des joueurs est aléatoire à chaque tour. La phase suivante commence lorsque toutes les villes ont exécuté la phase précédente (tour 1: joueur 1, joueur 2, joueur 3 ...; tour 2: joueur 3, joueur 2, joueur 1 ...):
1. Mutation - AUTOMATED
2. Reproduction - AUTOMATED
3. Migration - AUTOMATED
4. Infection - AUTOMATED
5. Contagion - AUTOMATED
6. Extinction - AUTOMATED
7. Players Turn - INTERACTIVE
Le contrôleur vous fournit une entrée via des arguments de commande et votre programme doit sortir via stdout.
Syntaxe
Contribution
Chaque fois que votre programme est appelé, il recevra des arguments dans ce format:
Round;YourPlayerId;PlayerId_Healthy_Infected_Dead_InfectionRate_ContagionRate_LethalityRate_MigrationRate;PlayerId_Healthy_Infected_Dead_InfectionRate_ContagionRate_LethalityRate_MigrationRate;...
Les rondes sont 1 indexées.
Exemple d'entrée
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
Ici, vous voyez que c'est le 6ème round et que vous êtes le joueur 2. Vous avez 20 personnes en bonne santé, 53 infectées, 62 morts, un taux d'infection de 16%, un taux de contagion de 20%, un taux de létalité de 35% et un taux de migration de 5%.
Sortie
Vous devez générer trois caractères (pas d'espace, pas de séparateur), qui correspondent chacun à une action que vous exécuterez à ce tour. L'ordre des personnages détermine l'ordre des actions. Vous pouvez générer les mêmes actions plusieurs fois.
N
: Do N ien
M
: Recherche M icrobiology [Effets: Réduire locale Taux d'infection de 4%]
E
: Recherche E pidemiology [Effets: Réduction locale Taux Contagion de 8%]
I
: Recherche I mmunology [Effets: Réduire locale Taux de létalité de 4%]
V
: recherche V accination [Effets: réduire locale Taux d'infection par un, réduire locale Taux Contagion de 4%, réduire locale Taux de létalité de 2%]
C
: Donnez C Ure [Effets: Convertir 10 locale infecté à la santé ]
Q
: Q uarantine [Effets: Retirer 30 locale Infected ]
O
: O stylo frontières [Effets: augmentation locale Taux de migration de 10%]
B
: Fermer B commandes [Effets: Diminution locale Taux de migration de 10%]
T
: Bio T TERRORISME [Effets: Convertir 4 mondiale saine à Infected ]
W
: W eaponization [Effets: augmentation globale Taux d'infection par 1, augmentation globale Taux de létalité de 2%]
D
: D IFFUSION [Effets: augmentation globale Taux d'infectionde 1, augmentation du taux de contagion global de 2%]
P
: P acification [Effets: diminution du taux d'infection global de 1, diminution du taux de contagion global de 1%, diminution du taux de létalité globale de 1%]
Gameplay
Toutes les phases
Commande invalide = Rien Les
pourcentages sont additionnés comme des nombres entiers, à savoir 10% - 4% = 6%. Lorsque des pourcentages sont appliqués dans une formule, le résultat est calculé.
Phase 1: Mutation
La pandémie devient plus puissante. Chaque tour, il gagne au hasard un de ces attributs (cette mutation affecte tous les joueurs à la fois):
- Augmenter le taux d'infection global de 2
- Augmenter le taux de contagion global de 5%
- Augmenter le taux de létalité global de 5%
Phase 2: reproduction
Tous les cinq tours (tours 5, 10, 15 ...), de nouveaux citoyens vont naître. Chaque paire de santé fera une santé (23 santé génèrent 11 nouvelles en santé ). Chaque paire de Infected fera un Infected .
Phase 3: migration
À chaque tour, un pourcentage de personnes en bonne santé et infectées quitteront les États, en fonction de leur taux de migration (10 en bonne santé quitteront un État avec un taux de migration de 100 en bonne santé et de 10% ). Ensuite, les migrants seront répartis entre chaque État, une fois encore en fonction du taux de migration . (Les taux de chaque État sont pondérés et les migrants sont ensuite répartis en conséquence).
Phase 4: Infection
En bonne santé de chaque état sont convertis en infectés , en fonction du taux d’infection .
Phase 5: Contagion
Les poids santé de chaque état sont convertis en infectés , en fonction du taux de contagion . Le nombre est calculé en multipliant le nombre de personnes infectées par le taux de contagion .
Phase 6: Extinction
Les infectés sont convertis en morts , selon le taux de létalité . Le nombre est calculé en multipliant le nombre de personnes infectées par le taux de létalité .
Phase 7: les joueurs tournent
Chaque joueur reçoit une entrée et doit générer trois actions, qui sont exécutées dans l'ordre dans lequel elles sont sorties.
Règles
- Les robots ne doivent pas être écrits pour battre ou soutenir d'autres robots.
- L'écriture dans des fichiers est autorisée. S'il vous plaît écrivez à "yoursubmissionname.txt", le dossier sera vidé avant le début d'une partie. Les autres ressources externes sont interdites.
- Votre soumission a une seconde pour répondre (par ville).
- Fournissez des commandes pour compiler et exécuter vos soumissions.
Gagnant
Le gagnant est celui qui a le plus sainement après 50 tours. Si un joueur est le dernier vivant (plus de 0 en bonne santé ou infecté ), le jeu s'arrête et il gagne. Si plusieurs joueurs ont le même nombre de joueurs en bonne santé , celui qui a le plus d’ infectés va gagner, alors celui qui a moins de morts .
Manette
Vous pouvez trouver le contrôleur sur GitHub . Il contient également trois samplesbots, écrits en Java.
Pour le faire fonctionner, extrayez le projet et ouvrez-le dans votre IDE Java. Le point d’entrée dans la main
méthode de la classe Game
. Java 8 requis.
Pour ajouter des robots, vous devez d’abord utiliser la version compilée pour Java (fichiers .class) ou les sources des langages interprétés. Placez-les dans le dossier racine du projet. Ensuite, créez une nouvelle classe Java dans le players
package (vous pouvez prendre exemple sur les robots existants). Cette classe doit être implémentée Player
pour remplacer la méthode String getCmd()
. La chaîne renvoyée est la commande shell permettant d’exécuter vos robots. Vous pouvez par exemple faire un travail de robot Ruby avec cette commande: return "C:\Ruby\bin\ruby.exe MyBot.rb";
. Enfin, ajoutez le bot dans le players
tableau en haut de la Game
classe.
Résultats finaux (2016-03-04 08:22 GMT)
Global (100 points de réputation):
Résultats de 100 jeux: 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)
Doomsday-less (200 reputation):
Résultats de 100 jeux: 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)
Merci à tous pour votre participation. J'espère que vous avez eu autant de plaisir à concevoir et à coder vos robots que j'avais à exécuter le jeu.