Os resultados finais estão aqui!
Introdução
Em 2042, o mundo ficou superpovoado. A globalização, a superlotação, os novos estilos de vida e a falta de higiene global causaram uma nova pandemia. Durante esses tempos difíceis, os líderes estaduais precisam gerenciar a situação. Você não pode deixar sua população ser dizimada, mas talvez você possa se beneficiar ao deixar seus vizinhos morrerem ...
Glossário
Saudável : Pessoas não infectadas
Infectado : Pessoas que podem morrer da pandemia
Mortos : Contagem de corpos, nenhum efeito em particular (apenas pontuação)
Taxa de Infecção : Número de Saudáveis que serão infectados a cada turno
Taxa de Contágio : Porcentagem de Infectados que converterão Saudáveis em Infectados cada turno
Taxa de letalidade : porcentagem de infectados que morrerão a cada turno
Taxa de migração : porcentagem de saudáveis e infectados que emigrarão / imigrarão a cada turno
local: Afeta apenas seu estado
Global : afeta todos os estados
Princípio
Cada um dos jogadores administrará uma cidade, começando com 100 pessoas . Infelizmente, entre eles está um infectado .
O jogo é baseado em turnos. Um turno consiste em sete fases , a última sendo interativa (pedindo um comando aos bots). A ordem dos jogadores é aleatória a cada turno. A próxima fase começa quando a fase anterior for executada por todas as cidades (Turno 1: Jogador 1, Jogador 2, Jogador 3 ...; Turno 2: Jogador 3, Jogador 2, Jogador 1 ...):
1. Mutation - AUTOMATED
2. Reproduction - AUTOMATED
3. Migration - AUTOMATED
4. Infection - AUTOMATED
5. Contagion - AUTOMATED
6. Extinction - AUTOMATED
7. Players Turn - INTERACTIVE
O controlador fornece entrada por meio de argumentos de comando, e seu programa deve gerar via stdout.
Sintaxe
Entrada
Cada vez que seu programa é chamado, ele recebe argumentos neste formato:
Round;YourPlayerId;PlayerId_Healthy_Infected_Dead_InfectionRate_ContagionRate_LethalityRate_MigrationRate;PlayerId_Healthy_Infected_Dead_InfectionRate_ContagionRate_LethalityRate_MigrationRate;...
A rodada é indexada em 1.
Exemplo de entrada
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
Aqui você vê que é a 6ª rodada e é o jogador 2. Você tem 20 saudáveis, 53 infectados, 62 mortos, 16% de taxa de infecção, 20% de contágio, 20% de taxa de letalidade e 5% de taxa de migração.
Resultado
Você precisa produzir três caracteres (sem espaço, sem separador), cada um correspondendo a uma ação que você executará neste turno. A ordem dos caracteres determina a ordem das ações. Você pode emitir as mesmas ações várias vezes.
N
: Do N ada
M
: Investigação M icrobiology [Efeitos: Reduzir locais taxa de infecção por 4%]
E
: Investigação E pidemiology [Efeitos: Reduzir locais contágio Taxa de 8%]
I
: Investigação I mmunology [Efeitos: Reduzir locais Letalidade Classificação por 4%]
V
: investigação V accination [Efeitos: reduzir locais taxa de infecção por um, reduzir locais contágio Taxa de 4%, reduzir locais letalidade Classificação por 2%]
C
: Dá C ure [Efeitos: Converter 10 locais infectados para saudável ]
Q
: Q uantantina [Efeitos: remova 30 locais infectados ]
O
: O Pen Borders [Efeitos: aumente a taxa de migração local em 10%]
B
: Feche pedidos B [Efeitos: diminua a taxa de migração local em 10%]
T
: B T errorism [Efeitos: Convert 4 mundial saudável para Infected ]
W
: W eaponization [Efeitos: aumento global da taxa de infecção por um, aumentar mundial letalidade Classificação por 2%]
D
: D IVULGAÇÃO [Efeitos: aumento global da taxa de infecçãopor 1, aumentar global de contágio Classificação por 2%]
P
: Pacificação [Efeitos: diminua a taxa de infecção global em 1, diminua a taxa de contágio global em 1%, diminua a taxa de letalidade global em 1%]
Jogabilidade
Todas as fases
Comando inválido = Nada
Porcentagem é somado como números inteiros, ou seja, 10% - 4% = 6%. Quando a porcentagem é aplicada em uma fórmula, o resultado é calculado.
Fase 1: Mutação
A pandemia está se tornando mais potente. A cada turno, ele ganha aleatoriamente um desses atributos (essa mutação afeta todos os jogadores ao mesmo tempo):
- Aumentar a taxa de infecção global em 2
- Aumentar a taxa global de contágio em 5%
- Aumentar a taxa de letalidade global em 5%
Fase 2: Reprodução
A cada cinco rodadas (rodada 5, 10, 15 ...), novos cidadãos nascerão. Cada par de Saudáveis fará um Saudável (23 Saudáveis geram 11 novos Saudáveis ). Cada par de infectados fará um infectado .
Fase 3: Migração
A cada turno, uma porcentagem de Saudáveis e Infectados deixará os estados, dependendo da sua Taxa de Migração (10 Saudáveis deixarão um estado com 100 Saudáveis e 10% de Taxa de Migração ). Em seguida, os migrantes serão distribuídos entre todos os estados, mais uma vez, dependendo da taxa de migração . (As taxas de cada estado são ponderadas e os migrantes são todos distribuídos de acordo).
Fase 4: Infecção
A saúde de cada estado é convertida em infectado , de acordo com a taxa de infecção .
Fase 5: Contágio
A saúde de cada estado é convertida em infectado , de acordo com a taxa de contágio . O número é calculado multiplicando a taxa de infectados pela taxa de contágio .
Fase 6: Extinção
Os infectados são convertidos em mortos , de acordo com a taxa de letalidade . O número é calculado multiplicando o número de infectados pela taxa de letalidade .
Fase 7: Jogadores viram
Cada jogador recebe entrada e deve produzir três ações, que são executadas na ordem em que são exibidas.
Regras
- Os bots não devem ser escritos para vencer ou suportar outros bots específicos.
- A gravação em arquivos é permitida. Por favor escreva para "YOURSubmissionname.txt", a pasta será esvaziada antes do início do jogo. Outros recursos externos não são permitidos.
- Seu envio tem um segundo para responder (por cidade).
- Forneça comandos para compilar e executar seus envios.
Ganhando
O vencedor é o que tem mais saúde após 50 rodadas. Se um jogador é o último vivo (mais de 0 Saudável ou Infetado ), o jogo para e ele vence. Se vários jogadores tiverem a mesma quantidade de Saudável , o jogador com mais Infectados vencerá, e o jogador com menos mortos .
Controlador
Você pode encontrar o controlador no GitHub . Ele também contém três samplebots, escritos em Java.
Para executá-lo, confira o projeto e abra-o no seu IDE Java. O ponto de entrada no main
método da classe Game
. É necessário o Java 8.
Para adicionar bots, primeiro você precisa da versão compilada para Java (arquivos .class) ou das fontes para linguagens interpretadas. Coloque-os na pasta raiz do projeto. Em seguida, crie uma nova classe Java no players
pacote (você pode dar um exemplo nos bots já existentes). Esta classe deve implementar Player
para substituir o método String getCmd()
. A String retornada é o comando do shell para executar seus bots. Você pode, por exemplo, fazer um trabalho de bot rubi com este comando: return "C:\Ruby\bin\ruby.exe MyBot.rb";
. Por fim, adicione o bot na players
matriz na parte superior da Game
classe.
Resultados finais (04-03-2016 08:22 GMT)
Global (100 reputação):
100 resultados de jogos: 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)
Dia do juízo final (reputação 200):
100 resultados de jogos: 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)
Obrigado a todos por sua participação. Espero que você tenha se divertido tanto desenhando e codificando seus bots quanto eu estava executando o jogo.