I risultati finali sono qui!
introduzione
Il gioco prende fortemente ispirato da Manu's Game of Town . Si svolge in un mondo di spade e magia. Il re che governava l'intero continente è appena morto, e i signori di molte città-stato stanno ora combattendo sul territorio. Sei uno di questi signori e il tuo obiettivo è conquistare e governare ogni singola città.
Principio
Le persone sono divise in 8 classi :
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 inizia il gioco, regni su una città. In ogni città ci sono 100 persone . Devi dividerli tra quelle 8 categorie.
Quindi inizia il gioco vero e proprio, a turni. Una svolta consiste in 12 fasi , 7 delle quali sono interattive (chiedendo un comando ai robot). La fase successiva inizia quando la fase precedente è stata eseguita da ogni città (Fase 1: Città 1, Città 2, Città 3 ...; Fase 2: Città 1, Città 2, Città 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
Il controller ti fornisce input tramite argomenti di comando, il tuo programma deve emettere via stdout.
Sintassi
Output (preparazione)
Prima dell'inizio del gioco, il controller invoca l'invio senza argomenti. Ciò significa che devi distribuire le tue 100 persone nelle 8 categorie.
Devi produrre:
Warlocks Crusaders Amazons Corsairs Bishops Necromancers Architects Peons
Ad esempio: 15 10 12 10 7 5 1 40
.
Ogni città inizia anche con 500 monete d'oro e 5 cadaveri.
Input
Ogni volta che viene chiamato il programma, riceverà argomenti in questo 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;...
Esempio di input
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;...
Ecco, vedi che è il 1 ° round, 2a fase, sei il giocatore 1 in città 1. Hai 700 monete d'oro, 5 cadaveri, 15 stregoni, 10 crociati, 12 amazzoni, 10 corsari, 7 vescovi, 5 negromanti, 1 architetto, 40 peoni, 0 templi, 1 caserma, 0 tenute e 2 palazzi.
Produzione
Vedi il gameplay.
gameplay
Tutte le fasi
Comando W
= ATTENDI
Comando non valido = WAIT
Fase 1: aumentare le tasse
Le entrate sono generate in base alla popolazione e agli edifici completati:
+5 gold * Peons
+2 gold * (Warlocks + Bishops + Necromancers) * TEMPLES
+2 gold * (Crusaders + Amazons) * BARRACKS
+2 gold * (Corsairs + Peons) * ESTATES
+10 gold * PALACES
Fase 2: rubare denaro
Durante questa fase, puoi rubare denaro da una città inviando Corsari. Ogni corsaro può rubare fino a 10 monete d'oro (ovvero 12 corsari possono rubare fino a 120 monete d'oro). Se la città bersaglio non ha abbastanza oro, i tuoi corsari ruberanno tutto, fino all'importo massimo del debito: 200 oro . Se provi a inviare più Corsari di quelli che possiedi, il programma utilizzerà tutti i Corsari disponibili.
Sintassi del comando :S DestinationId Corsairs
Fase 3: reclutare truppe
Qui puoi addestrare i tuoi peoni spendendo dell'oro. Puoi reclutare tutte le unità che vuoi, purché tu abbia abbastanza peoni e oro disponibili. Se si tenta di reclutare più di quanto si possa effettivamente fare, il gioco verrà reclutato in modo casuale fino a quando tutto sarà speso. Il programma rispetta le tue quote massime (se cerchi di reclutare 10 crociati e 5 amazzoni con solo 8 peoni, ad esempio recluterà 6 crociati e 2 amazzoni, e non 8 amazzoni o 8 stregoni).
Warlock : 10 gold
Crusader : 10 gold
Amazon : 10 gold
Corsair : 12 gold
Bishop : 20 gold
Necromancer : 20 gold
Architect : 15 gold
Sintassi del comando :R Warlocks Crusaders Amazons Corsairs Bishops Necromancers Architects
Fase 4: pagare i salari
Gli stipendi vengono addebitati in base alla tua popolazione:
-1 gold * (Warlock + Crusaders + Amazons)
-2 gold * (Corsairs + Bishops + Necromancers + Architects)
Fase 5: prova Revolt
Se il tuo saldo è negativo, perdi il controllo della tua città ai Fuorilegge . Dopo una rivolta, l'oro della città viene reimpostato per iniziare il valore: 500 oro . La popolazione è mantenuta ai suoi livelli attuali.
Fase 6: convertire i soldati
Ognuno dei tuoi Vescovi può convertire 1 soldato nemico (Stregone, Crociato o Amazon) da una Città scelta per una commissione di 50 monete d'oro per unità. Le unità convertite si uniscono alle forze di stanza nella tua città. Come per il reclutamento, se non hai abbastanza oro o vescovi disponibili, il programma si convertirà casualmente rispettando le quote.
Sintassi del comando :C DestinationId Warlocks Crusaders Amazons
Fase 7: città d'attacco
Puoi inviare un esercito di Stregoni, Crociati e Amazzoni per conquistare una Città. Se provi a inviare più di quello che hai, il programma invierà tutti.
I soldati hanno un bonus di combattimento di 1,5 seguendo questo schema: Mage > Range > Melee > Mage
(cioè uno Stregone che combatte un'Amazzonia guadagna 1,5 potere). Solo le unità in eccesso ottengono questo bonus (cioè uno Stregone che combatte uno Stregone e un'Amazzonia non ottiene questo bonus). Il bonus è attribuito sia all'offesa che alla difesa.
Le perdite sono distribuite casualmente tra le unità del vincitore in base alla potenza totale più libera (cioè Potenza offensiva: 12 vs. Potenza di difesa: 14, La difesa vince e perde 12 unità). Il perdente perde tutte le sue unità. Ogni unità morta viene aggiunta al conteggio dei cadaveri della città attaccata. Se l'infrazione vince, la città viene catturata ed è ora di proprietà dell'attaccante. Conserva anche l'oro, i cadaveri e i peoni presenti in questa città. Corsari, Vescovi, Negromanti e Architetti fuggono di fronte a una potenziale oppressione.
La difesa non ottiene nulla.
Sintassi del comando :A DestinationId Warlocks Crusaders Amazons
Fase 8: solleva i cadaveri
Ognuno dei tuoi negromanti può resuscitare fino a 5 peons consumando cadaveri e spendendo oro. Ogni Peone risorto costa 1 cadavere e 20 monete d'oro. Se provi a risorgere più di quanto puoi, il programma spenderà tutto ciò che hai.
Sintassi del comando :R Corpses
Fase 9: sposta esercito o tributo
Puoi inviare unità in un'altra città. Se provi a inviare più di quello che hai, il programma invierà tutti.
Sintassi del comando :M DestinationId Warlocks Crusaders Amazons Corsairs Bishops Necromancers Architects
Oppure puoi inviare oro noleggiando le navi dei Corsari. Ogni corsaro può trasportare fino a 200 monete d'oro . Se provi a inviare più di quello che hai, il programma invierà ciò che hai.
Sintassi del comando :T DestinationId Gold
Fase 10: difendersi dalle minacce
Diverse minacce minacciose per danneggiare la tua città:
- Zombi: i morti non sono sempre così morti come sembrano. Il 10% (pavimentato) dei cadaveri nella tua città si sveglierà e mangerà cervelli. Ogni zombi mangerà 1 Peone e poi vagherà nel nulla (i Cadaveri di entrambi gli Zombi e i Peoni mangiati vengono consumati).
- Demoni: i tuoi peoni devono ascoltare prediche o inizieranno a invocare gli spiriti oscuri. Ognuno dei tuoi Vescovi copre le esigenze di un massimo di 50 Peoni. Il 10% (a terra) dei tuoi Eretici (Peoni in eccesso) genererà Demoni. I demoni uccidono 1 peon ciascuno e ritornano all'inferno (i corpi dei peon vengono aggiunti al conteggio della città).
- Banditi: i fuorilegge abitano nel quartiere. La popolazione totale dei fuorilegge è divisa equamente tra le città e inviata a rubare ricchezza. La tua unica difesa sono le pattuglie dei Corsari. Ogni corsaro può fermare fino a 5 fuorilegge. Ogni fuorilegge non fermato ruba 10 monete d'oro dalla tua città (il debito massimo della città è di 200 monete d'oro)
All'inizio del gioco viene generata almeno 1 città di Fuorilegge (100 abitanti), quindi 1 in più per ogni 5 giocatori (es. 1-4 Giocatori: 1 Fuorilegge, 5-9 Giocatori: 2 Fuorilegge ...). I fuorilegge possono essere riconosciuti conid = -1
Fase 11: costruzione di edifici
Quando si raggiunge questa fase, la costruzione degli edifici nella tua città procede in base al numero di architetti. Ogni architetto aumenta il completamento di un singolo edificio dell'8%. Quando un edificio raggiunge il 100%, viene completato e inizia a generare entrate nella successiva fase "Imposte". La coda di costruzione è gestita automaticamente (primo arrivato, primo servito).
È quindi possibile avviare anche la costruzione di altri edifici (BuildingId = Letter tra parentesi):
TEMPLE (T) : 200 Gold
BARRACKS (B) : 200 Gold
ESTATE (E) : 200 Gold
PALACE (P) : 500 Gold
Puoi iniziare la costruzione di tutti gli edifici che desideri e, se non hai abbastanza oro, l'edificio verrà ignorato. La costruzione dei tuoi nuovi edifici inizierà solo il prossimo round.
Sintassi del comando :B BuildingId BuildingId BuildingId ...
Fase 12: fare bambini
Ogni cinque round (round 5, 10, 15 ...), i nuovi Peoni nasceranno e saranno pronti a combattere. Ogni coppia di Peoni produrrà 1 Peone (cioè 23 Peoni genereranno 11 nuovi Peoni).
Regole
- I robot non devono essere scritti per battere o supportare altri robot specifici.
- La scrittura su file è consentita. Scrivi a "yoursubmissionname.txt", la cartella verrà svuotata prima dell'inizio di una partita. Altre risorse esterne non sono consentite.
- Il tuo invio ha 1 secondo per rispondere (per città).
- Fornisci comandi per compilare ed eseguire i tuoi invii.
vincente
Il vincitore è quello con il maggior numero di città dopo 100 round. Se un giocatore cattura tutte le città, il gioco si ferma e vince. Se più giocatori hanno lo stesso numero di città, verrà conteggiata la popolazione totale, quindi la quantità di oro.
controllore
Puoi trovare il controller su github. Contiene anche 2 samplebot, scritti in Java. Aprilo in Eclipse, posiziona i robot compilati nella cartella principale e aggiungi una classe al programma di controllo (proprio come i samplebot).
combattimenti
La formula di combattimento è qualcosa del genere:
Per ogni classe di soldato (Stregone, Crociato, Amazon):
- Calcola l'equilibrio tra offesa e difesa (es. Chi ha più di ogni classe e quante di più?)
- Per i soldati in eccesso (cioè il valore del bilancio positivo), vedi quanti "obiettivi deboli" (vedi diagramma di Fase 7).
- Moltiplica la forza di combattimento dei soldati idonei (ovvero "obiettivi deboli" rispetto a "soldati in eccesso") per il bonus e aggiungi il resto con una forza di combattimento di 1.
Puoi provare un simulatore qui: http://ideone.com/ArJosE (basta cambiare i valori dei soldati, otterrai bonus e punti di forza totali)
Ecco alcuni casi di test:
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
Risultati finali
Media di 10 partite. Sintassi: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)
Risultati di 10 giochi: http://pastebin.com/GdufEYjm
Registri completi di 2 giochi: http://pastebin.com/GQDZ0JdY & http://pastebin.com/m3UBTDuC
Ben interpretato da tutti, la lotta è stata molto ravvicinata tra politico e oppositore.
The total Outlaws population is divided equitably between towns and sent to steal wealth.
Quanti banditi ci sono in totale?