หมายเหตุ:นี้คิงของเนินเขาท้าทายได้เสร็จสิ้น ซึ่งหมายความว่าเครื่องหมายถูกสีเขียวซึ่งได้รับรางวัลสำหรับ C5H8NNaO4 สำหรับการเข้าร่วม The Observer จะไม่ถูกย้ายไปยังคำตอบใหม่
คุณยังอาจส่งรายการใหม่ แต่อาจมีความล่าช้าในทัวร์นาเมนต์ใหม่ที่กำลังทำงานเนื่องจากฉันไม่ได้ตรวจสอบรายการใหม่อีกต่อไป
บทนำ
ในการท้าทายนี้คุณกำลังเล่นเกมอาร์เคดชื่อThe Ultimate Samurai Showdown รุ่นพิเศษ Ultimate 2.0 X Alpha Omega Turbo (หรือเพียงแค่Ultimate Samurai Showdownเพียงช่วงสั้น ๆ ) คู่ต่อสู้ของคุณ? ไม่มีใครนอกจากสมาชิกคนอื่น ๆ ของ Programming Puzzles & Code Golf!
อย่างที่คุณคาดหวังจากเกมอาเขต PPCG คุณไม่ได้เล่นUltimate Samurai Showdownโดยตรง แต่ควรเขียนโปรแกรมที่จะเล่นเกมให้คุณ โปรแกรมนี้จะต่อสู้กับโปรแกรมที่ส่งมาจากผู้ใช้รายอื่นในหนึ่งต่อหนึ่งการดวล โปรแกรมที่มีทักษะมากที่สุดจะได้รับรางวัล Ultimate Samurai ของ PPCG และได้รับรางวัลกรีนแทคของตำนาน
รายละเอียดเกม
ส่วนนี้อธิบายถึงกลไกเบื้องหลังเกม
เงื่อนไขชัยชนะ
การแข่งขันประกอบด้วยซามูไรสองตัวที่เผชิญหน้ากัน แต่ละซามูไรเริ่มต้นการแข่งขันแต่ละครั้งมี 20 จุดและ 1 เกียรติ ซามูไรชนะถ้าคู่ต่อสู้ของเขาตายและเขายังมีชีวิตอยู่ มีสองวิธีที่ซามูไรสามารถตายได้:
- ถ้าพลังชีวิตของซามูไรลดลงเหลือ 0 เขาจะตาย
- ถ้าซามูไรให้เกียรติตนเองต่ำกว่า 0 เขาจะถูกเทพเจ้าลงมาเพราะทำหน้าที่ไม่สุจริตในการดวล
การถูกโจมตีโดยเหล่าเทพนั้นมีลำดับความสำคัญสูงกว่าเมื่อมีค่าพลังชีวิตลดลงเหลือ 0 ดังนั้นในสถานการณ์ที่ซามูไรหนึ่งอยู่ที่ 0 แต้มสุขภาพและอีกอันอยู่ที่ -1 เกียรติยศซามูไรที่มี 0 แต้มสุขภาพจะเป็นผู้ชนะ ในสถานการณ์ที่ซามูไรทั้งสองอยู่ที่ -1 เกียรติยศพวกเขาทั้งคู่ต่างก็ถูกเทพเจ้าลงมาและเกมนี้ก็เสมอกัน
การแข่งขันประกอบด้วยถึง 500 ผลัด หาก 500 รอบที่ผ่านมาและการแข่งขันยังไม่ได้รับการตัดสิน (ซามูไรไม่เสียชีวิต) เทพเจ้าจะเบื่อและตีซามูไรทั้งสองลงจึงส่งผลให้เกิดการเสมอ
การปฏิบัติ
ในแต่ละตาซามูไรจะต้องดำเนินการอย่างใดอย่างหนึ่งดังต่อไปนี้:
W
ซามูไรจะรอและไม่ทำอะไรเลย นี่ทำให้เขาดูเท่ แต่ไม่ได้ช่วยให้เขาเอาชนะคู่ต่อสู้ได้ นี่คือการกระทำเริ่มต้น
B
ซามูไรจะคำนับคู่ต่อสู้ของเขาในแบบที่มีเกียรติ สิ่งนี้จะทำให้เทพเจ้าพอใจและดังนั้นซามูไรจะได้รับ 1 เกียรติยศ การให้เกียรติมีความสำคัญต่อความสำเร็จของซามูไรของคุณเพราะเกียรติยศเป็น "ทรัพยากร" สำหรับเกมนี้เป็นหลัก - การเคลื่อนไหวทั้งหมดนอกเหนือจากB
และW
สามารถลดเกียรติยศได้ นอกจากนี้ถ้าเป็นซามูไรกำไร 7 เกียรติยศหรือมากกว่าที่เขาจะได้รับการใช้ดาบของเหล่าทวยเทพ ความหมายของสิ่งนี้มีอธิบายไว้ด้านล่าง
อย่างไรก็ตามการโค้งคำนับฝ่ายตรงข้ามทำให้คุณเปิดหากฝ่ายตรงข้ามตัดสินใจที่จะโจมตีคุณด้วยดาบของเขาดังนั้นควรระมัดระวังเมื่อคุณเลือกที่จะโค้งคำนับ
G
ซามูไรจะเข้าสู่ตำแหน่งการป้องกันและป้องกันการโจมตีด้วยดาบใด ๆ การย้ายครั้งนี้ประสบความสำเร็จจะป้องกันการนัดหยุดงานดาบทุกคนแม้กระทั่งทำด้วยดาบของเหล่าทวยเทพ
อย่างไรก็ตามเทพเจ้าที่ขมวดคิ้วเมื่อซามูไรป้องกันมากเกินไปดังนั้นการเคลื่อนไหวนี้จะกิน 1 เกียรติหากการกระทำของซามูไรในเทิร์นก่อนหน้าทันทีก็ยังปกป้อง มันไม่ได้ใช้เกียรติอย่างอื่น
I
ซามูไรจะพยายามประหารคู่ต่อสู้ด้วยการดึงดาบออกจากฝักอย่างรวดเร็ว ถ้าซามูไรมี 7 เกียรติขึ้นไปเขาจะใช้ดาบแห่งเทพเจ้าแทนดาบปกติของเขา การเคลื่อนไหวนี้ใช้ 1 เกียรติ
การจู่โจมอย่างรวดเร็วคือการโจมตีที่รวดเร็วซึ่งจะเอาชนะการโจมตีด้วยค่าใช้จ่ายที่ช้าลง หากการนัดหยุดงานการเชื่อมต่อที่ประสบความสำเร็จจะทำ 1 ความเสียหายหรือความเสียหายที่ 2 กับดาบของเหล่าทวยเทพ
P
ซามูไรจะพยายามหลบเลี่ยงการโจมตีที่เข้ามาจากนั้นเริ่มการโจมตีของเขาเอง ถ้าซามูไรมี 7 เกียรติขึ้นไปเขาจะใช้ดาบแห่งเทพเจ้าแทนดาบปกติของเขา การเคลื่อนไหวนี้ใช้ 1 เกียรติ
การหลบหลีกเป็นวิธีที่ดีในการโจมตีอย่างรวดเร็ว แต่มันจะถูกโจมตีด้วยการโจมตีเหนือศีรษะที่ช้ากว่า หากการนัดหยุดงานการเชื่อมต่อที่ประสบความสำเร็จจะทำ 1 ความเสียหายหรือความเสียหายที่ 2 กับดาบของเหล่าทวยเทพ
O
ซามูไรจะพยายามโจมตีคู่ต่อสู้ของเขาด้วยการโจมตีเหนือศีรษะที่ช้ากว่า ถ้าซามูไรมี 7 เกียรติขึ้นไปเขาจะใช้ดาบแห่งเทพเจ้าแทนดาบปกติของเขา การเคลื่อนไหวนี้ใช้ 1 เกียรติ
การโจมตีด้วยโสหุ้ยสามารถเอาชนะ parries ได้ แต่มันจะแพ้การโจมตีอย่างรวดเร็ว หากการนัดหยุดงานการเชื่อมต่อที่ประสบความสำเร็จจะทำ 1 ความเสียหายหรือความเสียหายที่ 2 กับดาบของเหล่าทวยเทพ
ดาบแห่งทวยเทพ
ซามูไรกับเกียรติยศที่เป็น 7 หรือมากกว่ากำไรความสามารถในการใช้ดาบของเหล่าทวยเทพ หากเกียรติของเขาลดลงต่ำกว่า 7 ความสามารถในการใช้ดาบแห่งเทพเจ้าจะถูกเพิกถอนจากเขา ดาบของพระเจ้าสร้างความเสียหาย 2 แทน 1
ดาบของพระเจ้าไม่อนุญาตให้มีการนัดหยุดงานที่จะเอาชนะการตีดาบว่ามันจะไม่พ่ายแพ้ปกติ ยกตัวอย่างเช่นดาบของเหล่าทวยเทพปัดป้องจะยังคงการสูญเสียค่าใช้จ่ายในการโจมตีธรรมดาและดาบของพระเจ้าอย่างรวดเร็ววาดจะไม่เอาชนะวาดอย่างรวดเร็วสามัญ จริงๆแล้วSword of the Gods ที่เรียกว่าไม่ใช่ทุกอย่างที่ทรงพลัง - บางทีมันเป็นเรื่องตลกเกี่ยวกับจักรวาลที่เล่นโดยเหล่าทวยเทพ ...
ตารางการโต้ตอบ
ตัวอย่างสแต็คด้านล่างมีตารางซึ่งแสดงรายการผลลัพธ์ที่เป็นไปได้ทั้งหมดของการผสมผสานการกระทำที่แตกต่างกันอย่างชัดเจนซึ่งซามูไรสองคนสามารถทำได้ หากต้องการดูให้คลิกที่ "แสดงตัวอย่างข้อมูลโค้ด" จากนั้นคลิก "เรียกใช้ข้อมูลโค้ด"
การสื่อสารโปรแกรม
เพื่ออำนวยความสะดวกในการวิ่งของทัวร์นาเมนต์โปรแกรมควบคุมได้ถูกเขียนขึ้นเพื่อเล่นบทบาทของ "เทพเจ้า" - มันเก็บบันทึกเกียรติยศและสุขภาพและซามูไรตามลำดับ ส่วนนี้อธิบายวิธีที่โปรแกรมของคุณจะสื่อสารกับโปรแกรมควบคุม
ป้อนคำอธิบาย
โปรแกรมควบคุมจะเรียกโปรแกรมของคุณจากบรรทัดคำสั่งดังนี้:
<command> <history> <enemy_history> <your_health> <enemy_health> <your_honour> <enemy_honour>
ที่อยู่:
<command>
เป็นคำสั่งที่จำเป็นในการเรียกใช้โปรแกรมของคุณ ตัวอย่างเช่นถ้าโปรแกรมของคุณในแฟ้มคำสั่งน่าจะเป็นsuper_sentai.pl
perl super_sentai.pl
<history>
เป็นประวัติศาสตร์ของการเคลื่อนไหวที่คุณทำ ตัวอย่างเช่นWWBP
จะหมายความว่าคุณรอสองครั้งโค้งคำนับครั้งเดียวและซักครั้งเดียว<enemy_history>
เป็นประวัติศาสตร์ของการเคลื่อนไหวที่ศัตรูของคุณสร้างขึ้น ตัวอย่างเช่นBBBI
จะหมายถึงศัตรูของคุณโค้งคำนับสามครั้งและทำการวาดอย่างรวดเร็วหนึ่งครั้ง<your_health>
คือสุขภาพปัจจุบันของคุณ<enemy_health>
คือสุขภาพปัจจุบันของศัตรู<your_honour>
เป็นเกียรติปัจจุบันของคุณ<enemy_honour>
เป็นเกียรติปัจจุบันของศัตรู
สำหรับเทิร์นแรก, history
และenemy_history
จะว่างเปล่า, ดังนั้นโปรแกรมของคุณจะถูกเรียกด้วยอาร์กิวเมนต์สี่ตัวสุดท้ายดังนี้:
<command> <your_health> <enemy_health> <your_honour> <enemy_honour>
โปรดเตรียมพร้อมสำหรับสิ่งนี้!
ผู้อ่านที่ชาญฉลาดอาจสังเกตเห็นว่าข้อโต้แย้งทั้งสี่ที่ให้เกียรติและสุขภาพของซามูไรทั้งสองนั้นไม่เพียงพอ เนื่องจากเกมนี้เป็นเกมข้อมูลที่สมบูรณ์แบบคุณจะสามารถพิจารณาเกียรติยศและสุขภาพของซามูไรได้โดยใช้ประวัติเท่านั้น
ค่าเหล่านี้จัดทำขึ้นเพื่อวัตถุประสงค์ด้านความสะดวกสบายเพื่อให้คุณไม่ต้องแยกวิเคราะห์อาร์กิวเมนต์ประวัติ สิ่งนี้ควรพิสูจน์ว่ามีประโยชน์สำหรับการใช้กลยุทธ์ง่าย ๆ เช่นไม่โจมตีเมื่อเกียรติยศของคุณเป็น 0
คำอธิบายผลลัพธ์
ในการเลือกการดำเนินการโปรแกรมของคุณควรจะเป็นหนึ่งในการส่งออกของW
, B
, G
, I
, P
หรือO
ออกมาตรฐานขึ้นอยู่กับสิ่งที่กระทำที่คุณต้องการที่จะทำให้ หากโปรแกรมของคุณไม่แสดงผลใด ๆ ภายใน 1000ms โปรแกรมจะถูกยกเลิกและโปรแกรมของคุณจะได้รับการปฏิบัติเสมือนเป็นโปรแกรมออกW
มา
หากโปรแกรมของคุณส่งออกมากกว่าหนึ่งตัวอักษรตัวอักษรแรกเท่านั้นที่จะถูกพิจารณา - ดังนั้นการส่งออกParry
จะเป็นเช่นเดียวกับการส่งP
ออก
หากการส่งออกของตัวอักษรตัวแรกของโปรแกรมที่ไม่ได้เป็นตัวเลือกใด ๆ W
ที่ระบุไว้ข้างต้นก็จะเริ่มต้น
รูปแบบการส่ง
ส่งโปรแกรมเป็นคำตอบสำหรับโพสต์นี้ คุณสามารถส่งหลายโปรแกรม หากคุณกำลังส่งโปรแกรมง่าย ๆ หลายโปรแกรมฉันแนะนำให้ส่งเป็นคำตอบเดียว หากคุณกำลังส่งโปรแกรมที่ซับซ้อนหลายโปรแกรมฉันแนะนำให้ส่งเป็นคำตอบแยกต่างหาก เมื่อฉันเพิ่มโปรแกรมของคุณไปยังทัวร์นาเมนต์ได้สำเร็จฉันจะส่งไฟล์คอมไพล์ของคุณ (ลิงค์ด้านล่าง)
หากฉันพบปัญหาที่ทำให้ไม่สามารถเพิ่มโปรแกรมของคุณในทัวร์นาเมนต์ได้ฉันจะแสดงความคิดเห็นในรายการของคุณซึ่งระบุถึงปัญหา
โปรดระบุสิ่งต่อไปนี้ในการส่งของคุณ:
- ชื่อมนุษย์ที่สามารถอ่านได้ของโปรแกรมของคุณเพื่อใช้ในกระดานคะแนน อนุญาตให้เว้นวรรคได้ที่นี่ เครื่องหมายจุลภาคและอักขระ Unicode ไม่ใช่
- ภาษาที่โปรแกรมของคุณเขียนขึ้นโปรดหลีกเลี่ยงการเขียนภาษาแปลก ๆ และยากต่อการเข้าถึงภาษาเช่น TinyMUSH
- บทสรุปสั้น ๆ ของโปรแกรมของคุณ นี่อาจเป็นคำอธิบายเกี่ยวกับวิธีการทำงานของโปรแกรมหรือเพียงข้อความรสเกี่ยวกับโปรแกรมของคุณ (ถ้าคุณต้องการเป็นความลับทั้งหมด) หรืออาจเป็นทั้งสองอย่าง
- คำสั่ง / s ที่จำเป็นในการเรียกใช้โปรแกรมของคุณ ตัวอย่างเช่นถ้าคุณกำลังเขียนส่งของคุณในชวาเรียกว่า
example.java
คุณจะให้รวบรวมคำแนะนำแล้ววิ่งคำแนะนำjavac example.java
java example
- ซอร์สโค้ดสำหรับโปรแกรม
เพื่อช่วยในการส่งผมให้แม่แบบการส่งซึ่งสามารถพบได้ที่นี่ เทมเพลตทำให้การส่งมีลักษณะที่ดีขึ้น ฉันขอแนะนำให้ใช้อย่างมาก
ฉันยังให้ตัวอย่างสองรายการ แม้ว่ารายการตัวอย่างจะเข้าร่วมในรอบโรบินเป้าหมายหลักของพวกเขาคือการชี้แจงรูปแบบการส่งและอินพุต / เอาท์พุตสำหรับทัวร์นาเมนต์แทนที่จะเป็นผู้แข่งขันที่จริงจังสำหรับชื่อของ Ultimate Samurai
โครงสร้างการแข่งขัน
ส่วนนี้อธิบายถึงวิธีการแข่งขันระหว่างผู้เข้าร่วมจะถูกเรียกใช้
โปรแกรมควบคุม
โปรแกรมควบคุมจะถูกเขียนในหลาม 2 และสามารถพบได้ในพื้นที่เก็บข้อมูลที่ดีที่สุดซามูไรแบไต๋ Github หากคุณต้องการเรียกใช้ด้วยตนเองคำแนะนำเกี่ยวกับวิธีการเรียกใช้จะรวมอยู่ในไฟล์ README.md ในลิงก์ อย่างไรก็ตามมีเพียงทัวร์นาเมนต์ที่รันบนคอมพิวเตอร์ของฉันเท่านั้นที่จะเป็นทางการเพื่อหลีกเลี่ยงความแตกต่างของฮาร์ดแวร์ที่มีผลต่อผลลัพธ์การแข่งขัน
โปรแกรมควบคุมจะทำงานบนคอมพิวเตอร์แล็ปท็อปที่ใช้ Arch Linux มีหน่วยประมวลผล Intel Core i7 และ RAM 8GB ฉันจะพยายามทำให้รายการทั้งหมดทำงานบนคอมพิวเตอร์ของฉัน แต่ฉันขอขอบคุณอย่างมากหากคุณหลีกเลี่ยงภาษาที่ไม่สามารถเข้าถึงได้อย่างอิสระ (เช่นไม่มีค่าใช้จ่าย)
ระบบการให้คะแนน
ระบบการให้คะแนนเป็นรอบโรบิน แต่ละโปรแกรมจะเล่นแปดแมตช์กับโปรแกรมอื่น ๆ ผู้ชนะจะได้รับโปรแกรม 1 คะแนนไม่มีการเสียคะแนนและเสมอกัน 0.5 คะแนน โปรแกรมที่มีคะแนนสูงสุดชนะเกม หากมีการจับสลากกันฉันจะดวลสองรายการแรกเพื่อหาผู้ชนะ
จำนวนครั้งที่แต่ละโปรแกรมจะเล่นซึ่งกันและกันอาจลดลงจาก 8 หากมีผู้เข้าร่วมจำนวนมาก ฉันจะเพิ่มบันทึกที่นี่หากสิ่งนี้เกิดขึ้น
ฉันจะใช้งานโรบินรอบหลายครั้งเมื่อมีการโพสต์ใหม่ แต่มันก็เป็นเพียงโรบินรอบล่าสุดที่จะนับ
ลักษณะต้องห้าม
เป็นไปได้ที่โปรแกรมของคุณจะถูกตัดสิทธิ์จากการแข่งขัน การตัดสิทธิ์อาจเกิดขึ้นหาก:
- โปรแกรมของคุณไม่ได้คอมไพล์หรือรัน
- โปรแกรมของคุณซ้ำซ้อนเชิงกลยุทธ์ของโปรแกรมอื่น (นั่นคือมันใช้กลยุทธ์เดียวกับโปรแกรมอื่น)
- โปรแกรมของคุณพยายามที่จะก่อวินาศกรรมโปรแกรมอื่น ๆ โดยการปรับเปลี่ยนรหัสควบคุมรหัสโปรแกรมอื่น ๆ ฯลฯ ;
- โปรแกรมของคุณพยายามใช้ประโยชน์จากข้อบกพร่องในรหัสคอนโทรลเลอร์ แทนที่จะใช้ประโยชน์จากข้อบกพร่องคุณควรเปิดปัญหาในที่เก็บ git แสดงความคิดเห็นที่นี่หรือ ping ฉันในการแชท
ผลลัพธ์ที่ผ่านมา
ผลรายละเอียดของการแข่งขันทั้งหมดจะทำบริการที่หน้าวิกิพีเดีย
การแข่งขันครั้งล่าสุดเสร็จสมบูรณ์เมื่อวันที่ 2015-07-17 07:20 นี่คือบทสรุปของผลลัพธ์:
The Observer: 209.0
Coward: 203.0
Monk: 173.0
Elephant Warrior: 157.0
Iniqy: 157.0
Agent 38: 144.0
Ninja: 138.0
Meiyo Senshi: 138.0
Kakashi: 136.0
Yoshimitsu: 131.0
Hermurai: 121.0
Warrior Princess: 120.0
Gargoyle: 119.5
The Honourable: 119.0
Hebi: 118.5
Predictor: 116.0
Whack-a-mole: 107.0
The Fool: 106.0
The Prophet: 105.0
Copy-san: 97.0
YAGMCSE: 80.0
The Waiter: 66.0
Swordsman: 43.0
Spork Holder: 32.5
Blessed Samurai: 27.5
Attacker: 27.0
The Terminator: 17.0
Master Yi: 16.0