最終結果はこちら!
前書き
ゲームテイクは、マヌーのゲームオブタウンに強く触発されています。剣と魔法の世界で行われます。大陸全体を支配していた王が亡くなり、多くの都市国家の領主たちが領土をめぐって戦っている。あなたはこれらの領主の一人であり、あなたの目標はすべての町を征服し、支配することです。
原理
人々は8つのクラスに分かれています:
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)
ゲームが始まると、1つの町を支配します。各町には100人がいます。これらの8つのカテゴリにそれらを分割する必要があります。
その後、実際のゲームが始まります。これはターンベースです。ターンは12段階で構成され、そのうち7 段階は対話型です(ボットにコマンドを要求します)。次のフェーズは、前のフェーズがすべての町で実行されたときに始まります(フェーズ1:タウン1、タウン2、タウン3 ...;フェーズ2:タウン1、タウン2、タウン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
コントローラはコマンド引数を介して入力を提供し、プログラムは標準出力を介して出力する必要があります。
構文
出力(準備)
ゲームを開始する前に、コントローラーは引数なしで送信を呼び出します。つまり、100人を8つのカテゴリに分類する必要があります。
出力する必要があります:
Warlocks Crusaders Amazons Corsairs Bishops Necromancers Architects Peons
例:15 10 12 10 7 5 1 40
。
各町は、500個の金と5個の死体から始まります。
入力
プログラムが呼び出されるたびに、この形式の引数を受け取ります。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;...
入力例
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;...
ここでは、第1ラウンド、第2フェーズ、タウン1のプレイヤー1であることがわかります。700ゴールド、5死体、15ウォーロック、10十字軍、12アマゾン、10コルセア、7司教、5ネクロマンサー、1建築家、 40ペオン、0寺院、1兵舎、0団地、2宮殿。
出力
ゲームプレイをご覧ください。
ゲームプレイ
すべてのフェーズ
コマンド W
= WAIT
無効なコマンド = WAIT
フェーズ1:増税
収入は、人口と完成した建物に応じて生成されます。
+5 gold * Peons
+2 gold * (Warlocks + Bishops + Necromancers) * TEMPLES
+2 gold * (Crusaders + Amazons) * BARRACKS
+2 gold * (Corsairs + Peons) * ESTATES
+10 gold * PALACES
フェーズ2:お金を盗む
この段階では、コルセアを送ることで、ある町からお金を盗むことができます。各コルセアは最大10ゴールドを盗むことができます(つまり、12コルセアは最大120ゴールドを盗むことができます)。ターゲットの町に十分な金がない場合、海賊は最大の借金額である200金まですべてを盗みます。あなたが所有するよりも多くのCorsairsを送信しようとすると、プログラムは利用可能なCorsairsをすべて使用します。
コマンド構文:S DestinationId Corsairs
フェーズ3:部隊の募集
ここでいくつかの金を使うことであなたの牡丹を訓練できます。十分な数の牡丹と金が用意されていれば、好きなだけユニットを募集できます。実際にリクルートしようとすると、ゲームはすべてが使い果たされるまでランダムにリクルートします。プログラムは最大クォータを尊重します(8ペオンのみで10十字軍と5アマゾンを募集しようとすると、たとえば8アマゾンや8ウォーロックではなく6十字軍と2アマゾンを募集します)。
Warlock : 10 gold
Crusader : 10 gold
Amazon : 10 gold
Corsair : 12 gold
Bishop : 20 gold
Necromancer : 20 gold
Architect : 15 gold
コマンド構文:R Warlocks Crusaders Amazons Corsairs Bishops Necromancers Architects
フェーズ4:賃金の支払い
給与は、人口に応じて引き落とされます。
-1 gold * (Warlock + Crusaders + Amazons)
-2 gold * (Corsairs + Bishops + Necromancers + Architects)
フェーズ5:反乱を試す
あなたのバランスが負の場合、あなたは無法者にあなたの町の制御を失います。反乱の後、町の金はリセットされて値が500になります。人口は現在のレベルに維持されます。
フェーズ6:兵士の変換
各司教は、選択した町から敵兵士1人(ウォーロック、クルセイダー、またはアマゾン)を1ユニットあたり50ゴールドで変換できます。変換されたユニットは、あなたの町に駐留している部隊に参加します。募集と同様に、十分なゴールドまたは司教が利用できない場合、プログラムはクォータを尊重しながらランダムに変換します。
コマンド構文:C DestinationId Warlocks Crusaders Amazons
フェーズ7:攻撃タウン
ウォーロック、十字軍、アマゾンの軍隊を送って町を征服することができます。あなたが持っているよりも多くを送信しようとすると、プログラムは全員を送信します。
兵士は、このパターンに従って1.5の戦闘ボーナスを持ちますMage > Range > Melee > Mage
(つまり、Amazonと戦うウォーロックは1.5のパワーを獲得します)。過剰なユニットのみがこのボーナスを受け取ります(つまり、ウォーロックとアマゾンが戦うウォーロックはこのボーナスを受け取りません)。ボーナスは、攻撃と防御の両方に起因します。
損失は、より弱い総力に応じて勝者のユニット間でランダムに分配されます(つまり、攻撃力:12対防御力:14、防御が勝利し、12ユニットを失います)。ルーザーは彼のすべてのユニットを失います。死んだユニットはすべて、攻撃された町の死体カウントに追加されます。攻撃が勝った場合、町は捕獲され、攻撃者が所有するようになります。彼はまた、この町にいた金、死体、およびonsを保持しています。コルセア、司教、ネクロマンサー、建築家は、潜在的な弾圧の前に逃げます。
防御は何も得ません。
コマンド構文:A DestinationId Warlocks Crusaders Amazons
フェーズ8:死体を上げる
ネクロマンサーはそれぞれ、死体を消費して金を消費することにより、最大5人の牡丹を復活させることができます。復活した各Peonsには1体の死体と20ゴールドがかかります。あなたができる以上に復活しようとすると、プログラムはあなたが持っているすべてを使い果たします。
コマンド構文:R Corpses
フェーズ9:軍隊またはトリビュートを移動する
ユニットを別の町に送ることができます。あなたが持っているよりも多くを送信しようとすると、プログラムは全員を送信します。
コマンド構文:M DestinationId Warlocks Crusaders Amazons Corsairs Bishops Necromancers Architects
または、コルセアの船をチャーターして金を送ることができます。各コルセアは最大200ゴールドを輸送できます。あなたが持っているよりも多くを送信しようとすると、プログラムはあなたが持っているものを送信します。
コマンド構文:T DestinationId Gold
フェーズ10:脅威に対する防御
いくつかの脅威があなたの町に害を及ぼすと脅しています。
- ゾンビ:死者は見た目ほど死んでいるとは限りません。あなたの町の死体の10%(床)が目を覚まし、脳を食べます。各ゾンビは1ペオンを食べてから空虚になります(ゾンビと食べたペオンの両方のコープスが消費されます)。
- 悪魔:あなたのpeonsは説教を聞く必要があります。さもないと彼らはDark Spiritsを呼び始めます。ビショップのそれぞれが、最大50人のPeonsのニーズを満たします。異端者の10%(フロア)が(過剰なPeons)デーモンを生成します。悪魔はそれぞれ1ペオンを殺し、地獄に戻ります(ペオンのコープスは町のカウントに追加されます)。
- 盗賊:無法者は近所に住んでいます。無法者の総人口は町間で公平に分けられ、富を盗むために送られます。あなたの唯一の防御は、コルセアのパトロールです。各海賊は、最大5つの無法者を止めることができます。停止しなかった各無法者はあなたの町から10個の金を盗みます(町の借金は最大200個です)
ゲームの開始時に少なくとも1つの無法者の町(人口100人)が生成され、5人のプレイヤーごとにさらに1つ(つまり、1-4人のプレイヤー:1人の無法者、5-9人のプレイヤー:2人の無法者)が生成されます。無法者は、id = -1
フェーズ11:建物の建設
この段階に達すると、建築家の数に応じて町の建物の建設が進みます。各アーキテクトは、1つの建物の完成度を8%増加させます。建物が100%に達すると、建物は完成し、次の「税金」フェーズで収益を生み出し始めます。コンストラクションキューは自動管理されます(先着順)。
その後、他の建物の構築を開始することもできます(BuildingId =括弧内のレター):
TEMPLE (T) : 200 Gold
BARRACKS (B) : 200 Gold
ESTATE (E) : 200 Gold
PALACE (P) : 500 Gold
必要な数の建物の建設を開始できます。十分な金がない場合、建物は無視されます。新しい建物の建設は、次のラウンドからのみ開始されます。
コマンド構文:B BuildingId BuildingId BuildingId ...
フェーズ12:子供を作る
5ラウンド(ラウンド5、10、15 ...)ごとに、新しいPeonsが生まれ、戦う準備ができます。Peeonの各ペアは1 Peonを作成します(つまり、23 Peeonは11 Peonを生成します)。
ルール
- ボットは、特定の他のボットを倒したりサポートしたりするために書かれてはなりません。
- ファイルへの書き込みが許可されています。「yoursubmissionname.txt」に書き込むと、ゲームが開始される前にフォルダーが空になります。他の外部リソースは許可されていません。
- 提出には1秒間の応答があります(町ごと)。
- 提出物をコンパイルして実行するコマンドを提供します。
勝ち
勝者は、100ラウンド後に最も多くの町を獲得したものです。プレイヤーがすべての町を占領すると、ゲームは停止し、勝ちます。複数のプレイヤーが同じ量の町を持っている場合、総人口がカウントされ、次に金の量がカウントされます。
コントローラ
コントローラーはgithubで見つけることができます。Javaで書かれた2つのサンプルボットも含まれています。Eclipseで開き、コンパイルされたボットをルートフォルダーに配置し、クラスを制御プログラムに追加します(サンプルボットと同様)。
戦い
戦闘式は次のようなものです。
兵士の各クラス(ウォーロック、クルセーダー、アマゾン):
- オフェンスとディフェンスのバランスを計算します(つまり、各クラスの人数が多く、さらに多くの人数がいますか?)
- 過剰な兵士(つまり、正のバランスの値)については、「弱いターゲット」(フェーズ7の図を参照)の数を確認してください。
- 資格のある兵士(つまり、「過剰な兵士」と比較して「弱いターゲット」)の戦闘力にボーナスを掛け、残りに戦闘力1を加えます。
ここでシミュレーターを試すことができます:http : //ideone.com/ArJosE(兵士の値を変更するだけで、ボーナスと合計戦力が得られます)
以下にいくつかのテストケースを示します。
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
最終結果
10ゲームの平均。構文: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)
10ゲームの結果:http : //pastebin.com/GdufEYjm
2つのゲームの完全なログ:http://pastebin.com/GQDZ0JdY&http://pastebin.com/m3UBTDuC
みなさんよくプレイしました。政治家とオポチュニストの間の戦いは本当に近かったです。
The total Outlaws population is divided equitably between towns and sent to steal wealth.
盗賊は何人いますか?