Los resultados finales están aquí!
Introducción
El juego toma está fuertemente inspirado en Manu's Game of Town . Se lleva a cabo en un mundo de espadas y magia. El rey que gobernó todo el continente acaba de morir, y los señores de las muchas ciudades-estado ahora están luchando por el territorio. Usted es uno de estos señores y su objetivo es conquistar y gobernar cada ciudad.
Principio
Las personas se dividen en 8 clases :
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)
Cuando comienza el juego, gobiernas una ciudad. En cada pueblo hay 100 personas . Tienes que dividirlos entre esas 8 categorías.
Entonces comienza el juego real, que se basa en turnos. Un turno consta de 12 fases , 7 de las cuales son interactivas (solicitando un comando a los bots). La siguiente fase comienza cuando la fase anterior ha sido ejecutada por cada ciudad (Fase 1: Ciudad 1, Ciudad 2, Ciudad 3 ...; Fase 2: Ciudad 1, Ciudad 2, Ciudad 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
El controlador le proporciona entrada a través de argumentos de comando, su programa tiene que salir a través de stdout.
Sintaxis
Salida (preparación)
Antes de que comience el juego, el controlador invoca su presentación sin argumentos. Esto significa que debe distribuir a sus 100 personas en las 8 categorías.
Necesitas salida:
Warlocks Crusaders Amazons Corsairs Bishops Necromancers Architects Peons
Por ejemplo: 15 10 12 10 7 5 1 40
.
Cada ciudad también comienza con 500 de oro y 5 cadáveres.
Entrada
Cada vez que se llama a su programa, recibirá argumentos en este 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;...
Entrada de ejemplo
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;...
Aquí, ves que es la primera ronda, la segunda fase, eres el jugador 1 en la ciudad 1. Tienes 700 de oro, 5 cadáveres, 15 brujos, 10 cruzados, 12 amazonas, 10 corsarios, 7 obispos, 5 nigromantes, 1 arquitecto, 40 peones, 0 templos, 1 cuartel, 0 fincas y 2 palacios.
Salida
Ver jugabilidad.
Jugabilidad
Todas las fases
Comando W
= ESPERAR
Comando no válido = ESPERAR
Fase 1: Aumento de impuestos
Los ingresos se generan de acuerdo con su población y sus edificios terminados:
+5 gold * Peons
+2 gold * (Warlocks + Bishops + Necromancers) * TEMPLES
+2 gold * (Crusaders + Amazons) * BARRACKS
+2 gold * (Corsairs + Peons) * ESTATES
+10 gold * PALACES
Fase 2: robar dinero
Durante esta fase, puedes robar dinero de una ciudad enviando corsarios. Cada corsario puede robar hasta 10 de oro (es decir, 12 corsarios pueden robar hasta 120 de oro). Si la ciudad objetivo no tiene suficiente oro, tus corsarios robarán todo, hasta el monto máximo de la deuda: 200 de oro . Si intenta enviar más corsarios de los que posee, el programa utilizará todos sus corsarios disponibles.
Sintaxis del comando :S DestinationId Corsairs
Fase 3: reclutar tropas
Aquí puedes entrenar a tus peones gastando algo de oro. Puedes reclutar tantas unidades como quieras, siempre que tengas suficientes peones y oro disponibles. Si intentas reclutar más de lo que realmente puedes, el juego reclutará al azar hasta que se haya gastado todo. El programa respeta sus cuotas máximas (si intenta reclutar 10 cruzados y 5 amazonas con solo 8 peones, por ejemplo reclutará 6 cruzados y 2 amazonas, y no 8 amazonas u 8 brujos).
Warlock : 10 gold
Crusader : 10 gold
Amazon : 10 gold
Corsair : 12 gold
Bishop : 20 gold
Necromancer : 20 gold
Architect : 15 gold
Sintaxis del comando :R Warlocks Crusaders Amazons Corsairs Bishops Necromancers Architects
Fase 4: Salarios salariales
Los salarios se cargan de acuerdo a su población:
-1 gold * (Warlock + Crusaders + Amazons)
-2 gold * (Corsairs + Bishops + Necromancers + Architects)
Fase 5: Prueba Revuelta
Si su saldo es negativo, pierde el control de su ciudad a los Forajidos . Después de una revuelta, el oro de la ciudad se restablece al valor inicial: 500 de oro . La población se mantiene en sus niveles actuales.
Fase 6: Convertir soldados
Cada uno de tus obispos puede convertir 1 soldado enemigo (brujo, cruzado o amazona) de una ciudad elegida por una tarifa de 50 de oro por unidad. Las unidades convertidas se unen a las fuerzas estacionadas en tu ciudad. Al igual que con el reclutamiento, si no tiene suficiente oro u obispos disponibles, el programa se convertirá al azar y respetará las cuotas.
Sintaxis del comando :C DestinationId Warlocks Crusaders Amazons
Fase 7: Ciudad de ataque
Puedes enviar un ejército de brujos, cruzados y amazonas para conquistar una ciudad. Si intenta enviar más de lo que tiene, el programa enviará a todos.
Los soldados tienen una bonificación de combate de 1.5 siguiendo este patrón: Mage > Range > Melee > Mage
(es decir, un brujo que lucha contra un Amazonas gana 1.5 de poder). Solo las unidades en exceso obtienen esta bonificación (es decir, un brujo que lucha contra un brujo y un amazona no obtiene esta bonificación). La bonificación se atribuye tanto a la ofensa como a la defensa.
Las pérdidas se distribuyen aleatoriamente entre las unidades del vencedor de acuerdo con el poder total más flojo (es decir. Poder ofensivo: 12 vs. Poder de defensa: 14, Defensa gana y pierde 12 unidades). El perdedor pierde todas sus unidades. Cada unidad muerta se agrega al recuento de cadáveres de la ciudad atacada. Si el delito gana, la ciudad es capturada y ahora es propiedad del atacante. También guarda el oro, los cadáveres y los peones que había en esta ciudad. Los corsarios, obispos, nigromantes y arquitectos huyen frente a la posible opresión.
La defensa no consigue nada.
Sintaxis del comando :A DestinationId Warlocks Crusaders Amazons
Fase 8: Levantar cadáveres
Cada uno de tus nigromantes puede resucitar hasta 5 peones al consumir cadáveres y gastar oro. Cada peón resucitado cuesta 1 cadáver y 20 de oro. Si intentas resucitar más de lo que puedes, el programa gastará todo lo que tienes.
Sintaxis del comando :R Corpses
Fase 9: mover ejército o tributo
Puedes enviar unidades a otra ciudad. Si intenta enviar más de lo que tiene, el programa enviará a todos.
Sintaxis del comando :M DestinationId Warlocks Crusaders Amazons Corsairs Bishops Necromancers Architects
O puedes enviar oro alquilando las naves de los corsarios. Cada corsario puede transportar hasta 200 de oro . Si intenta enviar más de lo que tiene, el programa le enviará lo que tiene.
Sintaxis del comando :T DestinationId Gold
Fase 10: defenderse de las amenazas
Varias amenazas de amenazas para dañar tu ciudad:
- Zombis: los muertos no siempre están tan muertos como parecen. El 10% (con piso) de los cadáveres en tu ciudad despertará y comerá cerebros. Cada zombie se comerá 1 Peón y luego se adentrará en la nada (se consumen los cadáveres de los zombis y los peones comidos).
- Demonios: Tus peones necesitan escuchar sermones o comenzarán a invocar a los Espíritus Oscuros. Cada uno de sus obispos cubre las necesidades de hasta 50 peones. El 10% (con piso) de tus herejes (peones en exceso) generarán demonios. Los demonios matan a 1 peón cada uno y regresan al infierno (los cuerpos de peones se agregan al conteo de la ciudad).
- Bandidos: Los forajidos viven en el vecindario. La población total de forajidos se divide equitativamente entre las ciudades y se envía a robar riqueza. Tu única defensa son tus patrullas de corsarios. Cada corsario puede detener hasta 5 forajidos. Cada forajido que no se detiene roba 10 de oro de su ciudad (la deuda máxima de la ciudad es de 200 de oro)
Al menos 1 ciudad de Outlaws (100 habitantes) se genera al comienzo del juego, luego 1 más por cada 5 jugadores (es decir, 1-4 jugadores: 1 Outlaws, 5-9 jugadores: 2 Outlaws ...). Los forajidos pueden ser reconocidos conid = -1
Fase 11: Construcción del edificio
Al llegar a esta fase, la construcción de los edificios en su ciudad progresa según el número de arquitectos. Cada arquitecto aumenta la finalización de un solo edificio en un 8%. Cuando un Edificio alcanza el 100%, se completa y comienza a generar ingresos en la próxima Fase de "Impuestos". La cola de construcción se gestiona automáticamente (por orden de llegada).
Entonces también puede comenzar la construcción de otros Edificios (BuildingId = Letter entre paréntesis):
TEMPLE (T) : 200 Gold
BARRACKS (B) : 200 Gold
ESTATE (E) : 200 Gold
PALACE (P) : 500 Gold
Puede comenzar la construcción de tantos edificios como desee, y si no tiene suficiente oro, se ignorará el edificio. La construcción de tus nuevos edificios solo comenzará la próxima ronda.
Sintaxis del comando :B BuildingId BuildingId BuildingId ...
Fase 12: Hacer niños
Cada cinco asaltos (asaltos 5, 10, 15 ...), nacerán nuevos Peones y estarán listos para pelear. Cada par de peones hará 1 peón (es decir, 23 peones generarán 11 peones nuevos).
Reglas
- Los bots no deben escribirse para vencer o admitir otros bots específicos.
- Se permite escribir en archivos. Escribe a "yoursubmissionname.txt", la carpeta se vaciará antes de que comience el juego. Otros recursos externos están prohibidos.
- Su envío tiene 1 segundo para responder (por ciudad).
- Proporcione comandos para compilar y ejecutar sus envíos.
Victorioso
El ganador es el que tiene más ciudades después de 100 rondas. Si un jugador captura todas las ciudades, el juego se detiene y gana. Si varios jugadores tienen la misma cantidad de ciudades, la población total contará, luego la cantidad de oro.
Controlador
Puedes encontrar el controlador en github. También contiene 2 samplebots, escritos en Java. Ábralo en Eclipse, coloque los bots compilados en la carpeta raíz y agregue una clase al programa de control (al igual que los robots de muestra).
Peleas
La fórmula de lucha es algo como esto:
Para cada clase de soldado (Warlock, Crusader, Amazon):
- Calcular el equilibrio entre ataque y defensa (es decir, ¿quién tiene más de cada clase y cuántos más?)
- Para el exceso de soldados (es decir, el valor del equilibrio positivo), vea cuántos "objetivos débiles" (vea el diagrama de la Fase 7) hay.
- Multiplique la fuerza de combate de los soldados elegibles (es decir, "objetivos débiles" en comparación con "soldados en exceso") por la bonificación y agregue el resto con una fuerza de combate de 1.
Puedes probar un simulador aquí: http://ideone.com/ArJosE (solo cambia los valores de los soldados, obtendrás bonificaciones y fortalezas totales)
Aquí hay algunos casos de prueba:
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 finales
Promedio de 10 juegos. Sintaxis: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 juegos: http://pastebin.com/GdufEYjm
Registros completos de 2 juegos: http://pastebin.com/GQDZ0JdY y http://pastebin.com/m3UBTDuC
Bien jugado todos, la pelea ha sido muy estrecha entre político y Oppotunist.
The total Outlaws population is divided equitably between towns and sent to steal wealth.
¿Cuántos bandidos hay en total?