Os resultados finais estão aqui!
Introdução
O jogo leva é fortemente inspirado no jogo da cidade de Manu . Acontece em um mundo de espadas e magia. O rei que governou o continente inteiro acabou de morrer, e os senhores das muitas cidades-estado estão agora brigando por território. Você é um desses senhores e seu objetivo é conquistar e governar todas as cidades.
Princípio
As pessoas são divididas em 8 classes :
Warlocks : Fighter (magic)
Crusaders : Fighter (melee)
Amazons : Fighter (range)
Corsairs : Utility (steal, guard, transport)
Bishops : Utility (convert, exorcize)
Necromancers : Utility (resurrect)
Architects : Utility (build)
Peons : Resource (income, recruits)
Quando o jogo começa, você domina uma cidade. Em cada cidade, existem 100 pessoas . Você precisa dividi-los entre essas 8 categorias.
Então o jogo atual começa, que é baseado em turnos. Um turno consiste em 12 fases , 7 das quais são interativas (pedindo um comando aos bots). A próxima fase começa quando a fase anterior for executada por todas as cidades (Fase 1: Cidade 1, Cidade 2, Cidade 3 ...; Fase 2: Cidade 1, Cidade 2, Cidade 3 ...):
1. Raise Taxes - AUTOMATED
2. Steal Money - INTERACTIVE
3. Recruit Troops - INTERACTIVE
4. Pay Wages - AUTOMATED
5. Try Revolt - AUTOMATED
6. Convert Soldiers - INTERACTIVE
7. Attack Town - INTERACTIVE
8. Raise Corpses - INTERACTIVE
9. Move Army or Tribute - INTERACTIVE
10. Defend against Threats - AUTOMATED
11. Construct Buildings - INTERACTIVE
12. Make Children - AUTOMATED
O controlador fornece entrada através de argumentos de comando, seu programa deve ser enviado via stdout.
Sintaxe
Saída (preparação)
Antes do jogo começar, o controlador invoca sua submissão sem argumentos. Isso significa que você deve distribuir suas 100 pessoas nas 8 categorias.
Você precisa produzir:
Warlocks Crusaders Amazons Corsairs Bishops Necromancers Architects Peons
Por exemplo: 15 10 12 10 7 5 1 40
.
Cada cidade também começa com 500 de ouro e 5 cadáveres.
Entrada
Cada vez que seu programa é chamado, ele recebe argumentos neste formato:Round;Phase;YourPlayerId;YourTownId;PlayerId_TownId_Gold_Corpses_Warlocks_Crusaders_Amazons_Corsairs_Bishops_Necromances_Architects_Peons_Temples_Barracks_Estates_Palaces;PlayerId_TownId_Gold_Corpses_Warlocks_Crusaders_Amazons_Corsairs_Bishops_Necromances_Architects_Peons_Temples_Barracks_Estates_Palaces;...
Exemplo de entrada
1;2;1;1;0_0_600_5_15_10_12_10_7_5_1_40_0_0_0_0;1_1_700_5_15_10_12_10_7_5_1_40_0_1_0_2;...
Aqui, você vê que é a 1ª rodada, a 2ª fase, você é o jogador 1 da cidade 1. Você tem 700 ouro, 5 cadáveres, 15 feiticeiros, 10 cruzados, 12 amazonas, 10 corsários, 7 bispos, 5 necromantes, 1 arquiteto, 40 peões, 0 templos, 1 quartel, 0 propriedades e 2 palácios.
Saída
Veja jogabilidade.
Jogabilidade
Todas as fases
Command W
= WAIT
Comando inválido = WAIT
Fase 1: Aumentar impostos
A renda é gerada de acordo com sua população e seus edifícios concluídos:
+5 gold * Peons
+2 gold * (Warlocks + Bishops + Necromancers) * TEMPLES
+2 gold * (Crusaders + Amazons) * BARRACKS
+2 gold * (Corsairs + Peons) * ESTATES
+10 gold * PALACES
Fase 2: roubar dinheiro
Durante esta fase, você pode roubar dinheiro de uma cidade enviando Corsários. Cada Corsair pode roubar até 10 de ouro (ou seja, 12 Corsários podem roubar até 120 de ouro). Se a cidade alvo não tiver ouro suficiente, seus corsários roubarão tudo, até o montante máximo da dívida: 200 ouro . Se você tentar enviar mais corsários do que você possui, o programa usará todos os seus corsários disponíveis.
Sintaxe de comando :S DestinationId Corsairs
Fase 3: Recrutar tropas
Aqui você pode treinar seus peões gastando um pouco de ouro. Você pode recrutar quantas unidades quiser, desde que tenha peões e ouro suficientes. Se você tentar recrutar mais do que realmente pode, o jogo será recrutado aleatoriamente até que tudo tenha sido gasto. O programa respeita suas cotas máximas (se você tentar recrutar 10 cruzados e 5 amazonas com apenas 8 peões, por exemplo, recrutará 6 cruzados e 2 amazonas, e não 8 amazonas ou 8 bruxos).
Warlock : 10 gold
Crusader : 10 gold
Amazon : 10 gold
Corsair : 12 gold
Bishop : 20 gold
Necromancer : 20 gold
Architect : 15 gold
Sintaxe de comando :R Warlocks Crusaders Amazons Corsairs Bishops Necromancers Architects
Fase 4: Remuneração
Os salários são debitados de acordo com a sua população:
-1 gold * (Warlock + Crusaders + Amazons)
-2 gold * (Corsairs + Bishops + Necromancers + Architects)
Fase 5: Tente Revolta
Se o seu saldo for negativo, você perderá o controle da sua cidade para os bandidos . Após uma revolta, o ouro da cidade é redefinido para começar o valor: 500 ouro . A população é mantida em seus níveis atuais.
Fase 6: converter soldados
Cada um dos seus bispos pode converter 1 soldado inimigo (Bruxo, Cruzado ou Amazônia) de uma cidade escolhida por uma taxa de 50 de ouro por unidade. As unidades convertidas juntam-se às forças estacionadas em sua cidade. Assim como no recrutamento, se você não tiver ouro ou bispos suficientes, o programa será convertido aleatoriamente, respeitando as cotas.
Sintaxe de comando :C DestinationId Warlocks Crusaders Amazons
Fase 7: Cidade do Ataque
Você pode enviar um exército de feiticeiros, cruzados e amazonas para conquistar uma cidade. Se você tentar enviar mais do que você tem, o programa enviará todos.
Os soldados têm um bônus de combate de 1,5 seguindo este padrão: Mage > Range > Melee > Mage
(isto é, um bruxo que luta contra uma Amazônia ganha 1.5 de poder). Somente as unidades em excesso recebem esse bônus (ou seja, um Warlock lutando contra um Warlock e uma Amazon não recebe esse bônus). O bônus é atribuído tanto ao ataque quanto à defesa.
As perdas são distribuídas aleatoriamente entre as unidades do vencedor, de acordo com a potência total perdida (ou seja, poder de ataque: 12 vs. poder de defesa: 14, defesa ganha e perde 12 unidades). O perdedor perde todas as suas unidades. Cada unidade morta é adicionada à contagem de cadáveres da cidade atacada. Se a ofensa vencer, a cidade é capturada e agora pertence ao atacante. Ele também guarda o ouro, cadáveres e peões que estavam nesta cidade. Corsários, Bispos, Necromantes e Arquitetos fogem diante de uma potencial opressão.
A defesa não ganha nada.
Sintaxe de comando :A DestinationId Warlocks Crusaders Amazons
Fase 8: Levantar cadáveres
Cada um dos seus necromantes pode ressuscitar até 5 peões consumindo cadáveres e gastando ouro. Cada Peão ressuscitado custa 1 cadáver e 20 ouro. Se você tentar ressuscitar mais do que puder, o programa gastará tudo o que você tem.
Sintaxe de comando :R Corpses
Fase 9: Mover Exército ou Tributo
Você pode enviar unidades para outra cidade. Se você tentar enviar mais do que você tem, o programa enviará todos.
Sintaxe de comando :M DestinationId Warlocks Crusaders Amazons Corsairs Bishops Necromancers Architects
Ou você pode enviar ouro fretando os navios da Corsairs. Cada corsário pode transportar até 200 ouro . Se você tentar enviar mais do que você possui, o programa enviará o que você possui.
Sintaxe de comando :T DestinationId Gold
Fase 10: Defesa contra ameaças
Várias ameaças ameaçadoras para prejudicar sua cidade:
- Zumbis: os mortos nem sempre são tão mortos quanto parecem. 10% (no chão) dos cadáveres da sua cidade acordarão e comerão cérebros. Cada zumbi comerá 1 Peon e depois vagará pelo nada (cadáveres de ambos os zumbis e peões comidos são consumidos).
- Demônios: Seus peões precisam ouvir sermões ou começarão a invocar Espíritos Negros. Cada um de seu bispo cobre as necessidades de até 50 peões. 10% (piso) de seus hereges (peões em excesso) gerarão demônios. Demônios matam 1 Peon cada e retornam ao inferno (cadáveres de Peons são adicionados à contagem da cidade).
- Bandidos: Os bandidos estão morando no bairro. A população total dos foras da lei é dividida equitativamente entre as cidades e enviada para roubar riqueza. Sua única defesa são as patrulhas dos seus corsários. Cada corsário pode parar até 5 bandidos. Cada fora da lei não parado rouba 10 ouro da sua cidade (a dívida máxima da cidade é 200 ouro)
Pelo menos 1 cidade de foras da lei (100 habitantes) é gerada no início do jogo, e mais 1 para cada 5 jogadores (ou seja, 1-4 jogadores: 1 foras da lei, 5-9 jogadores: 2 foras da lei ...). Os foras-da-lei podem ser reconhecidos comid = -1
Fase 11: Construir Edifício
Ao chegar a essa fase, a construção dos edifícios em sua cidade progride de acordo com o número de arquitetos. Cada arquiteto aumenta a conclusão de um único edifício em 8%. Quando um edifício atinge 100%, ele é concluído e começa a gerar receita na próxima fase "Impostos". A fila de construção é gerenciada automaticamente (primeiro a chegar, primeiro a ser servido).
Você também pode iniciar a construção de outros edifícios (BuildingId = Letter entre parênteses):
TEMPLE (T) : 200 Gold
BARRACKS (B) : 200 Gold
ESTATE (E) : 200 Gold
PALACE (P) : 500 Gold
Você pode iniciar a construção de quantos Prédios desejar e, se não tiver ouro suficiente, o Prédio será ignorado. A construção de seus novos edifícios começará apenas na próxima rodada.
Sintaxe de comando :B BuildingId BuildingId BuildingId ...
Fase 12: Criar filhos
A cada cinco rounds (rounds 5, 10, 15 ...), novos Peons nascerão e estarão prontos para lutar. Cada par de Peões formará 1 Peon (ou seja, 23 Peons geram 11 novos Peons).
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 1 segundo para responder (por cidade).
- Forneça comandos para compilar e executar seus envios.
Ganhando
O vencedor é aquele com mais cidades após 100 rodadas. Se um jogador captura todas as cidades, o jogo para e ele vence. Se vários jogadores tiverem a mesma quantidade de cidades, a população total contará, e a quantidade de ouro.
Controlador
Você pode encontrar o controlador no github. Ele também contém 2 samplebots, escritos em Java. Abra-o no Eclipse, coloque os bots compilados na pasta raiz e adicione uma classe ao programa de controle (como os samplebots).
Lutas
A fórmula de combate é algo como isto:
Para cada classe de soldado (Warlock, Crusader, Amazon):
- Calcular o equilíbrio entre ataque e defesa (por exemplo: quem tem mais de cada classe e quantos mais?)
- Para o excesso de soldados (ou seja, valor do saldo positivo), veja quantos "alvos fracos" (consulte o diagrama da Fase 7) existem.
- Multiplique a força de combate dos soldados elegíveis (isto é, "alvos fracos" em comparação com "excesso de soldados") pelo bônus e adicione o restante com uma força de combate de 1.
Você pode tentar um simulador aqui: http://ideone.com/ArJosE (basta alterar os valores dos soldados, você receberá bônus e pontos fortes)
Aqui estão alguns casos de teste:
Attack Defense A. Bonus D. Bonus A. Str D. Str Winner
20/10/0 12/12/12 8/0/0 0/2/10 34.0 42.0 Defense
40/0/5 12/12/12 12/0/0 0/12/0 51.0 42.0 Attack
0/60/8 10/30/2 0/10/6 8/0/0 76.0 46.0 Attack
20/20/40 90/5/5 0/15/5 40/0/0 90.0 120.0 Defense
Resultados finais
Média de 10 jogos. Sintaxe:Player(Towns, Population, Gold)
1. Opportunist(6.4, 4165, 2895626)
2. Politician(6.4, 1048, 42542)
3. Outlaw(2.8, 1575, 349073)
4. YoungEarl(0.4, 3424, 941624)
5. Aegis(0, 0, 0)
. Butter(0, 0, 0)
. Commander(0, 0, 0)
. Lannister(0, 0, 0)
. Machiaveli(0, 0, 0)
. Monarch(0, 0, 0)
. Serenity(0, 0, 0)
. Sehtimianer(0, 0, 0)
. Sleeper(0, 0, 0)
. Zealots(0, 0, 0)
Resultados de 10 jogos: http://pastebin.com/GdufEYjm
Logs completos de 2 jogos: http://pastebin.com/GQDZ0JdY & http://pastebin.com/m3UBTDuC
Bem jogado todos, a luta tem sido muito estreita entre político e oppotunista.
The total Outlaws population is divided equitably between towns and sent to steal wealth.
Quantos bandidos existem no total?