最終結果はこちら!
前書き
2042年、世界は人口過剰になりました。グローバリゼーション、過密状態、新しいライフスタイル、世界的な衛生状態の欠如により、新しいパンデミックが広がりました。それらの困難な時期に、国家指導者は状況を管理しなければなりません。人口を間引くことはできませんが、隣人を死なせることで利益を得られるかもしれません...
用語集
健康:人々が感染していない
感染パンデミックから死ぬことができる人物:
デッド:ボディは、特段の効果(のみ得点)カウントしない
感染率の数:健康になり感染を各ターン
伝染料金:の割合感染変換する健康への感染を各ターンの
致死率:各ターンで死亡する感染者の割合
移行率:各ターンに移住/移住する健康および感染者の割合
ローカルを:州のみに影響します
Global:すべての州に影響します
原理
各プレイヤーは、100人から始まる1つの町を管理します。残念ながら、それらの中には感染した人がいます。
ゲームはターンベースです。ターンは7つのフェーズで構成され、最後のフェーズはインタラクティブです(ボットにコマンドを要求します)。プレイヤーの順番は毎ターンランダム化されます。次のフェーズは、前のフェーズがすべての町で実行されたときに始まります(ターン1:プレイヤー1、プレイヤー2、プレイヤー3 ...、ターン2:プレイヤー3、プレイヤー2、プレイヤー1 ...):
1. Mutation - AUTOMATED
2. Reproduction - AUTOMATED
3. Migration - AUTOMATED
4. Infection - AUTOMATED
5. Contagion - AUTOMATED
6. Extinction - AUTOMATED
7. Players Turn - INTERACTIVE
コントローラーはコマンド引数を介して入力を提供し、プログラムはstdoutを介して出力する必要があります。
構文
入力
プログラムが呼び出されるたびに、次の形式の引数を受け取ります。
Round;YourPlayerId;PlayerId_Healthy_Infected_Dead_InfectionRate_ContagionRate_LethalityRate_MigrationRate;PlayerId_Healthy_Infected_Dead_InfectionRate_ContagionRate_LethalityRate_MigrationRate;...
ラウンドは1から始まります。
入力例
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
ここでは、第6ラウンドであり、プレイヤー2であることがわかります。20人が健康、53人が感染、62人が死亡、16%が感染率、20%が感染率、35%が死亡率、5%が移行率です。
出力
3文字(スペースなし、区切りなし)を出力する必要があります。各文字は、このターンに行う1つのアクションに対応しています。文字の順序により、アクションの順序が決まります。同じアクションを複数回出力できます。
N
:ドゥNの othing
M
:研究Mの icrobiology [効果:ローカル削減感染率を 4%]
E
:研究Eの pidemiology [効果:ローカル削減伝染率を 8%]
I
:研究私は mmunology [効果:ローカル削減致死率を 4%]
V
:研究Vの accination [効果:ローカル削減感染率を地元の削減、1によって伝染レートをローカル減らす、4%致死率を 2%]
C
:与えるCの UREを[効果:地元の10の変換感染に健康を ]
Q
:Q uarantine [効果:30のローカル感染を削除]
O
:Oペンの境界線[効果:ローカルの移行率を10%増加]
B
:B注文を閉じる[効果:ローカルの移行率を10%減少]
T
:バイオTエラー[効果:変換4グローバルな健康への感染 ]
W
:W eaponization [効果:グローバル増加感染率が世界的増加、1 致死レート ] 2%
D
:Dの issemination [効果:増やしグローバル感染率1により、グローバル増加伝染レート ] 2%
P
:Pの[効果:グローバル感染率を1減少、グローバル感染率を1%減少、グローバル致死率を減少を1%減少]
ゲームプレイ
すべてのフェーズ
無効なコマンド =何もない
パーセンテージは整数のように加算され。つまり、10%-4%= 6%です。割合が数式に適用されると、結果はフロアされます。
フェーズ1:突然変異
パンデミックはより強力になりつつあります。ターンごとに、これらの属性の1つをランダムに獲得します(この突然変異はすべてのプレイヤーに同時に影響します)。
- 世界的な感染率を高めるを2させる
- グローバルな伝染率を高めるを5%増加させる
- グローバル致死率を5%増加
フェーズ2:複製
5ラウンド(約5、10、15 ...)ごとに、新しい市民が生まれます。各対の健康は 1になります健康(23 健康的な 11の新しい生成健康を)。Infectedの各ペアは、1つのInfectedになります。
フェーズ3:移行
各ターンで、HealthyおよびInfectedの割合は、その移行率に応じて状態を終了します(10 Healthyは100 正常および10%移行率の状態を離れます)。その後、移住者はすべての州に分散されますが、再びMigration Rateに依存します。(各州のレートに重みが付けられ、移民はそれに応じてすべて分配されます)。
フェーズ4:感染
感染率に応じて、各状態の健康は感染に変換されます。
フェーズ5:伝染
感染率によれば、各州の健康は感染に変換されます。この数は、感染者に伝染率を乗じて計算されますます。
フェーズ6:絶滅
致死率に応じて、感染者は死者に変換されます。この数は、感染者に致死率を掛けて計算されます。
フェーズ7:プレイヤーのターン
各プレーヤーは入力を受け取り、3つのアクションを出力する必要があります。これらのアクションは、出力された順に実行されます。
ルール
- ボットは、特定の他のボットを倒したりサポートしたりするために書かれてはなりません。
- ファイルへの書き込みが許可されています。「yoursubmissionname.txt」に書き込むと、ゲームが開始される前にフォルダーが空になります。他の外部リソースは許可されていません。
- 提出には1秒間の応答があります(町ごと)。
- 提出物をコンパイルして実行するコマンドを提供します。
勝ち
勝者は、50ラウンド後に最も健康的なものです。プレイヤーが最後に生きている場合(0以上がHealthyまたはInfected)、ゲームは停止し、勝ちます。複数のプレイヤーが同じ量のHealthyを持っている場合、Infectedが最も多いプレイヤーが勝ち、Deadが少ないプレイヤーが勝ちます。
コントローラ
GitHubでコントローラーを見つけることができます。Javaで記述された3つのサンプルボットも含まれています。
実行するには、プロジェクトをチェックアウトし、Java IDEで開きます。main
クラスのメソッドのエントリポイントGame
。Java 8が必要です。
ボットを追加するには、最初にコンパイル済みのJavaバージョン(.classファイル)またはインタープリター言語のソースが必要です。プロジェクトのルートフォルダーに配置します。次に、players
パッケージに新しいJavaクラスを作成します(既存のボットを例に取ることができます)。Player
メソッドをオーバーライドするには、このクラスを実装する必要がありますString getCmd()
。返される文字列は、ボットを実行するためのシェルコマンドです。たとえば、次のコマンドでRubyボットを動作させることができます:return "C:\Ruby\bin\ruby.exe MyBot.rb";
。最後players
に、Game
クラスの一番上の配列にボットを追加します。
最終結果(2016-03-04 08:22 GMT)
グローバル(100レピュテーション):
100ゲーム結果: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)
終末なし(評判200):
100ゲーム結果: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)
ご参加ありがとうございました。私がゲームを実行していたのと同じくらい、ボットの設計とコーディングに時間を費やしたことを願っています。