ผลสุดท้ายอยู่ที่นี่แล้ว!
บทนำ
เกมจะเกิดเป็นแรงบันดาลใจอย่างมากจากเกมมนูของเมือง มันเกิดขึ้นในโลกแห่งดาบและเวทมนตร์ กษัตริย์ผู้ปกครองทั้งทวีปเพิ่งตายและขุนนางของรัฐหลายเมืองกำลังต่อสู้กันในอาณาเขต คุณเป็นหนึ่งในเหล่าขุนนางและเป้าหมายของคุณคือการพิชิตและครองเมืองทุกเมือง
หลัก
ผู้คนแบ่งออกเป็น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)
เมื่อเกมเริ่มต้นคุณครองเมืองหนึ่ง ในแต่ละเมืองมี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
คอนโทรลเลอร์ให้ข้อมูลอินพุตโดยใช้อาร์กิวเมนต์คำสั่งโปรแกรมของคุณต้องเอาต์พุตผ่าน stdout
วากยสัมพันธ์
เอาท์พุท (การเตรียมการ)
ก่อนที่เกมจะเริ่มตัวควบคุมจะเรียกใช้การส่งโดยไม่มีข้อโต้แย้ง ซึ่งหมายความว่าคุณต้องกระจายคน 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 warlocks, 10 ครูเซด, 12 amazons, 10 corsairs, 7 บิชอป, 5 นักออกแบบ 1 คน, สถาปนิก 1 คน 40 peons, 0 วัด, 1 barracks, 0 ที่ดินและ 2 วัง
เอาท์พุต
ดูการเล่นเกม
เพลย์
ทุกขั้นตอน
Command 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: ขโมยเงิน
ในช่วงนี้คุณสามารถขโมยเงินจากเมืองหนึ่งโดยส่ง Corsairs Corsair แต่ละตัวสามารถขโมยได้สูงสุด10 gold (เช่น 12 Corsair สามารถขโมยได้มากถึง 120 gold) ถ้าเมืองเป้าหมายไม่ได้มีทองพอคอร์แซร์ของคุณจะขโมยทุกอย่างขึ้นอยู่กับจำนวนหนี้สูงสุด: 200 ทอง หากคุณพยายามส่งคอร์แซร์มากกว่าที่คุณเป็นเจ้าของโปรแกรมจะใช้คอร์แซร์ทั้งหมดที่มีอยู่
ไวยากรณ์คำสั่ง :S DestinationId Corsairs
ขั้นตอนที่ 3: เกณฑ์ทหาร
ที่นี่คุณสามารถฝึกสอนคนที่คุณรักด้วยการใช้ทองคำ คุณสามารถรับสมัครยูนิตได้มากเท่าที่คุณต้องการตราบใดที่คุณมีพีออนและทองคำเพียงพอ หากคุณพยายามที่จะรับสมัครมากกว่าที่คุณสามารถทำได้จริงเกมจะรับสมัครแบบสุ่มจนกระทั่งทุกอย่างใช้ไป โปรแกรมเคารพโควต้าสูงสุดของคุณ (หากคุณพยายามรับสมัครครูแซ็ก 10 คนและแอมะซอนอีก 5 ตัวที่มีเพียง 8 คนเท่านั้นมันจะยกตัวอย่างครูสรรหา 6 คนและแซ็กซอน 2 คนไม่ใช่ 8 แอมะซอนหรือ 8 วอร์ล็อค)
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: ลองประท้วง
หากยอดเงินของคุณเป็นลบคุณหลวมการควบคุมของเมืองของคุณไปที่โจร หลังจากการก่อจลาจลทองของเมืองที่ถูก resetted เพื่อเริ่มต้นมูลค่า500 ทอง ประชากรจะยังคงอยู่ในระดับปัจจุบัน
ขั้นตอนที่ 6: แปลงทหาร
อธิการของคุณแต่ละคนสามารถแปลงทหารข้าศึก 1 คน (Warlock, Crusader หรือ Amazon) จากเมืองที่เลือกไว้โดยเสียค่าธรรมเนียม 50 gold ต่อหน่วย หน่วยที่ถูกดัดแปลงเข้าร่วมกองกำลังที่ประจำอยู่ในเมืองของคุณ เช่นเดียวกับการสรรหาถ้าคุณไม่มีทองคำหรือบาทหลวงเพียงพอโปรแกรมจะแปลงแบบสุ่มในขณะที่เคารพโควต้า
ไวยากรณ์คำสั่ง :C DestinationId Warlocks Crusaders Amazons
เฟส 7: เมืองถล่ม
คุณสามารถส่งกองทัพ Warlocks, Crusaders และ Amazons เพื่อพิชิตเมือง หากคุณพยายามที่จะส่งมากกว่าที่คุณมีโปรแกรมจะส่งทุกคน
ทหารมีโบนัสการต่อสู้ 1.5ตามรูปแบบนี้: Mage > Range > Melee > Mage
(เช่น Warlock ต่อสู้กับ Amazon ได้รับพลัง 1.5) เฉพาะหน่วยที่เกินรับโบนัสนี้ (เช่น Warlock สู้ Warlock และ Amazon ไม่ได้รับโบนัสนี้) โบนัสดังกล่าวมีสาเหตุมาจากความผิดและการป้องกัน
การสูญเสียจะถูกกระจายแบบสุ่มระหว่างหน่วยของผู้ชนะตามพลังงานทั้งหมดที่คลาย (เช่นพลังความผิด: 12 กับพลังป้องกัน: 14, การป้องกันชนะและการสูญเสีย 12 หน่วย) ผู้คลายสูญเสียยูนิตทั้งหมดของเขา ทุกหน่วยที่ตายจะถูกเพิ่มเข้าไปในซากศพของเมืองที่ถูกโจมตี หากความผิดชนะเมืองจะถูกจับและเป็นเจ้าของโดยผู้โจมตี เขายังเก็บทองคำศพและคนที่อยู่ในเมืองนี้ด้วย Corsairs, Bishops, Necromancers และ Architects หนีหน้าการกดขี่ที่อาจเกิดขึ้น
การป้องกันไม่ได้รับอะไรเลย
ไวยากรณ์คำสั่ง :A DestinationId Warlocks Crusaders Amazons
ขั้นตอนที่ 8: ยกศพ
นักมายากลของคุณแต่ละคนสามารถฟื้นคืนชีพได้มากถึง 5 คนโดยการใช้ซากศพและใช้ทองคำ แต่ละคนที่ฟื้นคืนชีพจะมีราคา 1 ศพและทองคำ 20 เม็ด หากคุณพยายามฟื้นคืนชีพมากขึ้นกว่าที่คุณสามารถทำได้โปรแกรมจะใช้ทุกอย่างที่คุณมี
ไวยากรณ์คำสั่ง :R Corpses
ขั้นตอนที่ 9: ย้ายกองทัพหรือบรรณาการ
คุณสามารถส่งหน่วยไปยังเมืองอื่น หากคุณพยายามที่จะส่งมากกว่าที่คุณมีโปรแกรมจะส่งทุกคน
ไวยากรณ์คำสั่ง :M DestinationId Warlocks Crusaders Amazons Corsairs Bishops Necromancers Architects
หรือคุณสามารถส่งทองคำโดยการเช่าเหมาลำเรือคอร์แซร์ โจรสลัดแต่ละลำสามารถขนย้ายทองคำได้มากถึง200ตัว หากคุณพยายามที่จะส่งมากกว่าที่คุณมีโปรแกรมจะส่งสิ่งที่คุณมี
ไวยากรณ์คำสั่ง :T DestinationId Gold
ขั้นตอนที่ 10: ป้องกันภัยคุกคาม
ภัยคุกคามหลายอย่างที่เป็นอันตรายต่อเมืองของคุณ:
- Zombies: คนตายนั้นไม่ได้ตายอย่างที่เห็น 10% (พื้น) ของศพในเมืองของคุณจะตื่นขึ้นและกินสมอง ซอมบี้แต่ละตัวจะกิน 1 Peon จากนั้นก็เดินเข้าไปในความว่างเปล่า
- ปีศาจ: คนของคุณต้องได้ยินคำเทศนาไม่เช่นนั้นพวกเขาจะเริ่มเรียกวิญญาณมืด อธิการของคุณแต่ละคนครอบคลุมความต้องการมากถึง 50 คน 10% (ปูพื้น) ของคนนอกรีตของคุณ (คนในจำนวนมากเกินไป) จะวางไข่ปีศาจ ปีศาจฆ่า 1 Peon และกลับไปสู่นรก (เพิ่ม Corpses of Peons ให้กับการนับเมือง)
- โจร: พวกโจรอาศัยอยู่ในย่านนั้น จำนวนประชากรทั้งหมดถูกแบ่งออกเป็นสองส่วนอย่างเท่าเทียมกันระหว่างเมืองและส่งไปขโมยความมั่งคั่ง การป้องกันเพียงอย่างเดียวของคุณคือการลาดตระเวนคอร์แซร์ โจรสลัดแต่ละคนสามารถหยุดพวกโจรได้มากถึง 5 คน คนร้ายแต่ละคนไม่หยุดขโมย 10 ทองจากเมืองของคุณ (หนี้ในเมืองสูงสุดคือ 200 ทอง)
มีการสร้างเมืองอย่างน้อย 1 เมือง (ประชากร 100 คน) ในช่วงเริ่มต้นของเกมและอีก 1 แห่งสำหรับผู้เล่น 5 คน (เช่น 1-4 ผู้เล่น: 1 ผู้เล่น 1 คน, ผู้เล่น 5-9 คน: 2 ผู้ตามกฎหมาย ... ) กฎหมายที่สามารถรับรู้ด้วยid = -1
ขั้นตอนที่ 11: สร้างอาคาร
เมื่อมาถึงระยะนี้การก่อสร้างอาคารในเมืองของคุณจะเป็นไปตามจำนวนสถาปนิก สถาปนิกแต่ละคนเพิ่มความสมบูรณ์ของอาคารเดียว 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, 10, 15 ... ) คนใหม่จะเกิดและพร้อมที่จะต่อสู้ แต่ละคู่ของ Peons จะสร้าง 1 Peon (เช่น 23 Peons สร้าง 11 Peons ใหม่)
กฎระเบียบ
- ไม่ควรเขียนบอทเพื่อเอาชนะหรือสนับสนุนบอทอื่น ๆ โดยเฉพาะ
- อนุญาตให้เขียนไฟล์ได้ โปรดเขียนถึง "yoursubmissionname.txt" โฟลเดอร์จะถูกทำให้ว่างเปล่าก่อนที่เกมจะเริ่ม ทรัพยากรภายนอกอื่น ๆ ไม่ได้รับอนุญาต
- ข้อมูลที่คุณส่งมี 1 วินาทีในการตอบกลับ (ต่อเมือง)
- ให้คำสั่งเพื่อรวบรวมและเรียกใช้การส่งของคุณ
การชนะ
ผู้ชนะคือผู้ที่มีเมืองมากที่สุดหลังจากผ่าน 100 รอบ หากผู้เล่นยึดครองทุกเมืองเกมจะหยุดและเขาชนะ หากผู้เล่นหลายคนมีจำนวนเมืองเท่ากันประชากรทั้งหมดจะถูกนับรวมจำนวนทองคำ
ตัวควบคุม
คุณสามารถค้นหาคอนโทรลเลอร์บน GitHub ได้ นอกจากนี้ยังมี 2 บอตตัวอย่างที่เขียนใน Java เปิดใน Eclipse วางบอตที่คอมไพล์แล้วในโฟลเดอร์ root และเพิ่มคลาสลงในโปรแกรมควบคุม (เช่นเดียวกับ samplebots)
การต่อสู้
สูตรการต่อสู้เป็นดังนี้:
สำหรับแต่ละคลาสทหาร (Warlock, Crusader, Amazon):
- คำนวณความสมดุลระหว่างความผิดและการป้องกัน (เช่น. ใครมีมากขึ้นในแต่ละชั้นเรียนและอีกเท่าไหร่?)
- สำหรับทหารส่วนเกิน (เช่นค่าของยอดคงเหลือเป็นบวก) ดูจำนวน "เป้าหมายอ่อนแอ" (ดูแผนภาพระยะที่ 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.
โจรมีทั้งหมดกี่คน?