I risultati finali sono qui!
introduzione
Nel 2042, il mondo è diventato sovrappopolato. La globalizzazione, il sovraffollamento, i nuovi stili di vita e una mancanza globale di igiene hanno causato la diffusione di una nuova pandemia. Durante quei tempi difficili, i capi di stato devono gestire la situazione. Non puoi lasciare che la tua popolazione venga decimata, ma forse potresti trarne beneficio lasciando morire i tuoi vicini ...
Glossario
Sano : persone non infette
Infetto : persone che possono morire di pandemia
Morti : numero di corpi, nessun effetto particolare (solo punteggio)
Tasso di infezione : numero di soggetti sani che verranno infettati ogni turno
Tasso di contagio : percentuale di infetti che converte da sano a infetto ogni turno
Tasso di mortalità : percentuale di infetti che muoiono ogni turno
Tasso di migrazione : percentuale di entrambi sani e infetti che emigreranno / emigreranno ogni turno
locale: Riguarda solo il tuo stato
Globale : riguarda tutti gli stati
Principio
Ognuno dei giocatori gestirà una città, a partire da 100 persone . Sfortunatamente, tra questi c'è uno infetto .
Il gioco è a turni. Una svolta è composta da sette fasi , l'ultima è interattiva (chiedendo un comando ai robot). L'ordine dei giocatori è randomizzato ogni turno. La fase successiva inizia quando la fase precedente è stata eseguita da ogni città (turno 1: giocatore 1, giocatore 2, giocatore 3 ...; turno 2: giocatore 3, giocatore 2, giocatore 1 ...):
1. Mutation - AUTOMATED
2. Reproduction - AUTOMATED
3. Migration - AUTOMATED
4. Infection - AUTOMATED
5. Contagion - AUTOMATED
6. Extinction - AUTOMATED
7. Players Turn - INTERACTIVE
Il controller ti fornisce input tramite argomenti di comando e il tuo programma deve emettere tramite stdout.
Sintassi
Ingresso
Ogni volta che viene chiamato il tuo programma, riceverà argomenti in questo formato:
Round;YourPlayerId;PlayerId_Healthy_Infected_Dead_InfectionRate_ContagionRate_LethalityRate_MigrationRate;PlayerId_Healthy_Infected_Dead_InfectionRate_ContagionRate_LethalityRate_MigrationRate;...
I round sono 1 indicizzati.
Esempio di input
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
Qui vedi che è il 6 ° round e sei il giocatore 2. Hai 20 sani, 53 infetti, 62 morti, il 16% di infezione, il 20% di contagio, il 35% di mortalità e il 5% di migrazione.
Produzione
Devi produrre tre caratteri (nessuno spazio, nessun separatore), ognuno dei quali corrisponde a un'azione che farai in questo turno. L'ordine dei personaggi determina l'ordine delle azioni. È possibile generare le stesse azioni più volte.
N
: Do N othing
M
: Ricerca M icrobiology [Effetti: Riduzione del tasso di infezione locale del 4%]
E
: Ricerca E pidemiologia [Effetti: Riduzione del tasso di contagio locale dell'8%]
I
: Ricerca I mmunologia [Effetti: Riduzione del tasso di mortalità locale del 4%]
V
: La ricerca V accination [Effetti: ridurre locale infezione Tasso per uno, ridurre locale Contagion tasso del 4%, ridurre locale letalità tasso del 2%]
C
: Dare C ure [Effetti: Convertire 10 locali Infected al sano ]
Q
: Q uarantine [Effetti: Rimuovi 30 locali infetti ]
O
: O pen Borders [Effetti: Aumenta il tasso di migrazione locale del 10%]
B
: Chiudi ordini B [Effetti: Riduci il tasso di migrazione locale del 10%]
T
: Errore T Bio [Effetti: Converti 4 global Healthy to Infected ]
W
: W eaponization [Effetti: aumenta il tasso di infezione globale di 1, aumenta il tasso di mortalità globale del 2%]
D
: emissione di D [Effetti: aumenta il tasso di infezione globaledi 1, aumenta il tasso di contagio globale del 2%]
P
: P acificazione [Effetti: diminuisci il tasso di infezione globale di 1, diminuisci il tasso di contagio globale dell'1%, diminuisci il tasso di letalità globale dell'1%]
gameplay
Tutte le fasi
Comando non valido = niente Le
percentuali vengono sommate come numeri interi, ovvero 10% - 4% = 6%. Quando la percentuale viene applicata in una formula, il risultato viene definito.
Fase 1: Mutazione
La pandemia sta diventando più potente. Ad ogni turno, ottiene casualmente uno di questi attributi (questa mutazione colpisce tutti i giocatori contemporaneamente):
- Aumenta il tasso di infezione globale di 2
- Aumenta il tasso di contagio globale del 5%
- Aumenta il tasso di mortalità globale del 5%
Fase 2: riproduzione
Ogni cinque round (round 5, 10, 15 ...), nasceranno nuovi cittadini. Ogni coppia di Healthy renderà uno Healthy (23 Healthy genereranno 11 nuovi Healthy ). Ogni coppia di infetti ne farà uno infetto .
Fase 3: migrazione
Ad ogni turno, una percentuale di sani e infetti lascerà gli stati, a seconda del loro tasso di migrazione (10 in buona salute lasceranno uno stato con 100 in buona salute e il 10% di migrazione ). Quindi, i migranti saranno distribuiti tra tutti gli stati, ancora una volta a seconda del tasso di migrazione . (I tassi di ciascuno stato sono ponderati e i migranti sono quindi tutti distribuiti di conseguenza).
Fase 4: infezione
In buona salute di ogni stato vengono convertiti in infetti , in base al tasso di infezione .
Fase 5: contagio
In buona salute di ogni stato vengono convertiti in infetti , in base al tasso di contagio . Il numero viene calcolato moltiplicando l' infetto per il tasso di contagio .
Fase 6: estinzione
Gli infetti vengono convertiti in morti , secondo il tasso di mortalità . Il numero viene calcolato moltiplicando l' infetto per il tasso di mortalità .
Fase 7: i giocatori girano
Ogni giocatore riceve input e deve emettere tre azioni, che vengono eseguite nell'ordine in cui vengono emesse.
Regole
- I bot non devono essere scritti per battere o supportare altri bot specifici.
- La scrittura su file è consentita. Scrivi a "yoursubmissionname.txt", la cartella verrà svuotata prima dell'inizio del gioco. Altre risorse esterne non sono consentite.
- Il tuo invio ha un secondo per rispondere (per città).
- Fornisci comandi per compilare ed eseguire i tuoi invii.
vincente
Il vincitore è quello con il più salutare dopo 50 round. Se un giocatore è l'ultimo vivo (più di 0 sani o infetti ) il gioco si interrompe e vince. Se più giocatori hanno lo stesso ammontare di Healthy , vincerà quello con il maggior numero di infetti , quindi quello con meno Dead .
controllore
Puoi trovare il controller su GitHub . Contiene anche tre samplebot, scritti in Java.
Per farlo funzionare, controlla il progetto e aprilo nel tuo IDE Java. Il punto di ingresso nel main
metodo della classe Game
. Java 8 richiesto.
Per aggiungere i bot, prima devi avere la versione compilata per Java (file .class) o i sorgenti per le lingue interpretate. Inseriscili nella cartella principale del progetto. Quindi, crea una nuova classe Java nel players
pacchetto (puoi fare un esempio sui bot già esistenti). Questa classe deve implementare Player
per sovrascrivere il metodo String getCmd()
. La stringa restituita è il comando shell per eseguire i tuoi robot. È possibile ad esempio fare un lavoro bot rubino con questo comando: return "C:\Ruby\bin\ruby.exe MyBot.rb";
. Infine, aggiungi il bot nella players
matrice nella parte superiore della Game
classe.
Risultati finali (04-03-2016 08:22 GMT)
Globale (100 reputazione):
Risultati di 100 giochi: 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 reputazione):
Risultati di 100 giochi: 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)
Grazie a tutti per la vostra partecipazione. Spero che tu abbia passato un bel momento a progettare e programmare i tuoi robot come ho fatto con il gioco.