ประวัติความเป็นมา
กำแพงโล่เป็นรูปแบบสงครามทางยุทธวิธีที่ย้อนกลับไปอย่างน้อย 2500 ปีก่อนคริสตกาล มันประกอบไปด้วยนักรบที่ซ้อนทับโล่กับเพื่อน ๆ ของพวกเขาเพื่อสร้าง 'กำแพง' ความดึงดูดของชั้นเชิงนั้นมาจากความจริงที่ว่าแม้แต่นักรบไร้ฝีมือที่สุดก็สามารถต่อสู้ในกำแพงตราบเท่าที่พวกเขามีเกราะและอาวุธ เนื่องจากอยู่ใกล้กับกำแพงจึงมีพื้นที่เล็ก ๆ น้อย ๆ ให้ย้ายไปรอบ ๆ และการต่อสู้มักจะกลายเป็นการแข่งขันที่ต่อสู้กับอาวุธมีคม
ความท้าทาย
งานของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นที่กำหนดให้สองอาร์เรย์ / รายการ / เวกเตอร์ของนักรบเป็นตัวตัดสินผลลัพธ์ของการต่อสู้ รายการจะเป็นตัวแทนของกำแพงบรรทัดเดียวและพวกเขาจะทำตามสัญกรณ์เฉพาะ
ไวกิ้ง:
นักรบนอร์ดิกมีแรงขับที่ดุเดือดในการต่อสู้ ในช่วงปลายศตวรรษที่ 8 จนถึงกลางศตวรรษที่ 11 ชาวไวกิ้งชาวเดนมาร์กได้บุกเข้ายึดอาณาจักรของสหราชอาณาจักรเพื่อค้นหาความร่ำรวยและพื้นที่เพาะปลูก สำหรับจุดประสงค์ของการท้าทายเหล่านี้คือนักรบของไวกิ้ง:
- อาร์ล
J
: มักพบว่านำคนของเขาออกมาจากกลางกำแพง Jarls เป็นผู้นำของกลุ่มไวกิ้ง รับ 15 ดาเมจในการตายและสร้างความเสียหายได้ 2 ดาเมจต่อรอบ - ผู้
B
จู่โจม: ถึงแม้ว่าจินตนาการจะทำให้ภาพลักษณ์ของผู้บ้าบิ่นบิดเบี้ยวอย่างมากนักรบเหล่านี้ก็รู้ดีว่าการต่อสู้ในสภาพที่ดุเดือดเหมือนมึนงงไม่มีการป้องกันใด ๆ นอกเหนือจากโล่ รับ 6 ดาเมจในการตายและสร้างความเสียหาย 3 ดาเมจต่อรอบ C
hieftain: เป็นต้นเป็นผู้ชายที่อุดมไปด้วยคนที่มีฟรีบริการของพวกเขา พวกเขามักจะได้รับชื่อเสียงที่ยิ่งใหญ่และความร่ำรวยในการต่อสู้ รับ 10 ดาเมจในการตายและสร้างความเสียหาย 2 ดาเมจต่อรอบ- The
M
en: Warriors ที่รับใช้หัวหน้าเผ่า พวกเขาสาบานว่าจะต่อสู้เพื่อขุนนางจนตาย รับ 8 ดาเมจในการตายและทำ 1 ดาเมจต่อรอบ - The
S
kald: Skalds ซึ่งมักจะแปลว่าเลื่องชื่อเป็นชายอิสระที่ถูกจ้างให้เขียนบทกวีเรื่องราวหรือเพลงเกี่ยวกับการกระทำอันยิ่งใหญ่ของนักรบนอร์ดิก รับ 8 ดาเมจในการตายและมอบความเสียหายโบนัส 1 Warrior ติดกัน Skalds ไม่สร้างความเสียหาย Warriors ไม่สามารถได้รับโบนัสมากกว่า 1 ดาเมจในทางนี้
แอกซอน:
ชาวแซ็กซอนมาตั้งถิ่นฐานในสหราชอาณาจักรจากทวีปยุโรปหลังจากการล่มสลายของจักรวรรดิโรมันในศตวรรษที่ 5 สำหรับจุดประสงค์ของการท้าทายนี้มีนักรบของแซกซอน:
E
ARL: ealdormenธรรมดาเรียกว่าเอิร์ลเป็นสมาชิกของสังคมชั้นสูงที่สูงขึ้น พวกเขามักจะถือครองที่ดินที่ดีและมีคนสาบสูญนับร้อยหรือหลายพันคน รับ 20 ดาเมจในการตายและทำ 1 ดาเมจต่อรอบK
คืน: สำหรับขาดระยะดีกว่าอัศวินเป็นขุนนางเล็ก ๆ น้อย ๆ ที่เป็นเจ้าของที่ดิน ในกรณีส่วนใหญ่อัศวินเป็นคนรับใช้สาบานต่อ Earl รับ 10 ดาเมจในการตายและสร้างความเสียหาย 2 ดาเมจต่อรอบ- ที่
W
arrior: คนธรรมดามักรองขุนนางโดยไม่มีที่ดินหรือชาวนาที่ทำหน้าที่เป็นอัศวิน เมื่ออยู่ติดกับอัศวินหรือเอิร์ลนักรบจะได้รับโบนัสดาเมจ +1 รับ 8 ดาเมจและสร้างความเสียหายได้ 2 ดาเมจต่อรอบ F
YRD: ผู้ Fyrd เป็นอาสาสมัครเหมือนกลุ่มคนฟรีมักเกษตรกรที่ยากจนที่ต้องการนำอาวุธใด ๆ (หรืออาวุธเหมือนฟาร์มดำเนินการ) พวกเขาจะต้องต่อสู้ในผนัง รับ 5 ดาเมจในการตายและทำ 1 ดาเมจต่อรอบP
riest: พระสงฆ์มีมูลค่าสูงในวัฒนธรรมของชาวอังกฤษในช่วงต้นเป็นใบปลิวของคำของพระเจ้า นักบวชจะได้รับ 15 ดาเมจและไม่เกิน 1 ดาเมจในแต่ละครั้ง นักบวชไม่ทำความเสียหาย นักบวชไม่สามารถป้องกันความเสียหายได้มากกว่า 1 ความเสียหายต่อนักรบ
กำแพง
กำแพงพบกันที่ศูนย์ของพวกเขา แต่ละรอบนักรบแต่ละคนสร้างความเสียหายให้กับนักรบโดยตรงต่อหน้าหรือถ้าไม่มีนักรบที่มีชีวิตอยู่ข้างหน้านักรบที่มีชีวิตที่อยู่ติดกันในแนวทแยงมุมจะมีสุขภาพเหลืออยู่น้อยที่สุด หากมีเน็คไทให้เลือกนักรบที่อยู่ใกล้กับขอบกำแพงมากขึ้น
ตัวอย่าง:
Vikings
[M,M,M,B,B,C,J,C,B,B,M,M,M]
[F,F,F,W,W,K,E,K,W,W,F,F,F]
Saxons
To make matters easier, let's convert these walls into numbers:
Round 0:
M M M B B C J C B B M M M
[8,8,8,6,6,10,15,10,6,6,8,8,8]
[5,5,5,8,8,10,20,10,8,8,5,5,5]
F F F W W K E K W W F F F
Round 1: Notice that 2 of the Saxons' warriors are adjacent to Knights, so they have a +1 damage bonus.
M M M B B C J C B B M M M
[7,7,7,4,3,8,14,8,3,4,7,7,7]
| | | | | | || | | | | | |
[4,4,4,5,5,8,18,8,5,5,4,4,4]
F F F W W K E K W W F F F
Round 2:
M M M B B C J C B B M M M
[6,6,6,2,0,6,13,6,0,2,6,6,6]
| | | | | | || | | | | | |
[3,3,3,2,2,6,16,6,2,2,3,3,3]
F F F W W K E K W W F F F
Round 3: Remember to collapse the arrays to account for dead warriors. Also, notice that the 2 outermost Fyrd are now attacking the diagonally adjacent viking.
M M M B C J C B M M M
[4,5,4,0,4,12,4,0,4,5,4]
/| | | | | || | | | | |\
[2,2,2,1,0,4,14,4,0,1,2,2,2]
F F F W W K E K W W F F F
Round 4: Notice once again the saxon Warriors next to the Knights dealing 3 damage:
M M M C J C M M M
[2,4,1,2,11,2,1,4,2]
/| | | | || | | | |\
[2,1,1,0,2,12,2,0,1,1,2]
F F F W K E K W F F F
Round 5:
M M M C J C M M M
[1,3,0,0,10,0,0,3,1]
| | | | || | | | |
[1,0,0,0,10,0,0,0,1]
F F F K E K F F F
Round 6:
M M J M M
[1,2,9,2,1]
\| | |/
[0,8,0]
F E F
Rounds 7 and 8:
M M J M M M M J M M
[1,2,8,2,1] [1,2,8,2,1]
\|/ \|/
[4] [0]
E E
Output: Viking victory.
กฎ:
- มีการใช้ช่องโหว่เริ่มต้น
- คุณสามารถใช้วิธีการใด ๆ IO สะดวก
- นี่คือรหัส - กอล์ฟดังนั้นจึงเป็นรหัสที่สั้นที่สุด (เป็นไบต์ต่อภาษา)
- คุณอาจไม่คิดว่ารายการจะมีความยาวเท่ากัน แต่จะสามารถจัดตำแหน่งที่กึ่งกลางได้เสมอ (จะมีนักรบจำนวนคี่ในแต่ละรายการเสมอหากรายการมีขนาดแตกต่างกัน)
- คุณสามารถส่งออกค่าจริง / เท็จใด ๆ โปรดระบุคำตอบของคุณในสิ่งที่เทียบเท่ากับ "ชัยชนะของไวกิ้ง / แซกซอน"
- ผู้แพ้จะถูกกำหนดเมื่อนักรบทั้งหมดของกำแพงตาย
หากคุณจบลงด้วยกำแพงที่ไม่สามารถปรับได้ในระหว่างการประมวลผลโค้ดให้จัดแนวเหล่านั้นให้อยู่ตรงกลางที่สุดเท่าที่จะทำได้โดยทิ้งนักรบพิเศษหนึ่งตัวไว้บนกำแพงที่ยาวขึ้นไปทางด้านขวา เช่น:
[M,M,M,J,M,M,M] [K,E,K,W]; [B,B,B,J] [K,K,W,W,K,E,K,W,W,K,K]
อย่าลังเลที่จะลองและทดสอบรหัสของคุณด้วยการตั้งค่ากำแพงใด ๆ ไม่ใช่เฉพาะในกรณีทดสอบ
กรณีทดสอบ:
V: [M,M,B,C,B,C,J,C,B,C,B,M,M]
S: [F,F,W,K,W,K,E,K,W,K,W,F,F]
O: Viking victory.
------------------------------
V: [M,M,M,M,M,M,M,M,M,M]
S: [W,W,W,W,W,W,W,W,W,W]
O: Saxon victory.
------------------------------
V: [B,C,M,B,C,M,M,C,B,M,C,B,M]
S: [W,F,W,F,E,E,E,F,W,F,W]
O: Viking victory.
------------------------------
V: [B,B,B,J,B,B,B]
S: [W,W,W,W,K,K,K,E,K,K,K,W,W,W,W]
O: Saxon victory.
------------------------------
V: [J]
S: [E]
O: Viking victory.
------------------------------
V: [C,C,C,C,B,B,M,M,M,M,J,J,J,M,M,M,M,B,B,C,C,C,C]
S: [K,K,K,K,K,K,K,K,K,K,W,E,W,K,K,K,K,K,K,K,K,K,K]
O: Saxon victory.
------------------------------
V: [M,M,S,C,B,J,B,C,S,M,M]
S: [F,K,P,W,K,E,K,W,P,K,F]
O: Saxon victory.
------------------------------
V: [S,S,S,...,S]
S: [P,P,P,...,P]
O: UNDEFINED (since both priests and skalds deal no damage, you can output anything here.)
------------------------------
มีความไม่ถูกต้องทางประวัติศาสตร์บางอย่าง อย่าลังเลที่จะชี้ให้พวกเขาเห็นและฉันจะทำให้ดีที่สุดเพื่อแก้ไข
(health, damage, damagebonus, protbonus)
)