ลองสร้างแบบจำลองสำหรับแง่มุมในเกมไพ่ซึ่งโดยส่วนตัวแล้วฉันรู้จักชื่อชาวดัตช์ 'Oorlog' (แปลเป็น 'สงคราม')
'Oorlog' ทำงานอย่างไร
ไพ่สองสำรับ (รวมถึง Jokers สองอัน) แบ่งเท่า ๆ กันระหว่างจำนวนผู้เล่นที่เล่น ผู้เล่นแต่ละคนจะสับไพ่ของตนเองวางคว่ำหน้าพวกเขาและผู้เล่นทุกคนเปิดไพ่ใบแรกของหุ้นในเวลาเดียวกัน 
ผู้ชนะของ 'การต่อสู้' นั้นถูกกำหนดโดยค่าของไพ่ตามกฎเหล่านี้: Joker / Ace เอาชนะ King; กษัตริย์เอาชนะราชินี ราชินีเอาชนะแจ็ค; แจ็คเอาชนะ 10; 10 เอาชนะ 9; .... นอกจากนี้ทั้ง 2 และ 3 ยังสามารถเอาชนะ Ace / Joker กฎสุดท้ายอาจนำไปสู่รอบที่ 2 หรือ 3 ชนะ Ace หรือ Joker, Ace หรือ Joker ชนะการ์ดอื่น ๆ ซึ่งจะชนะ 2 หรือ 3 ในกรณีนี้ 2 หรือ 3 ชนะการต่อสู้ 
(สูทไม่เกี่ยวข้องในเกมไพ่นี้)
เมื่อผู้เล่นสองคนขึ้นไปมีไพ่สูงสุดเท่ากันพวกเขาจะมี 'สงคราม' นี่หมายความว่าพวกเขาวางการ์ดคว่ำหนึ่งใบแล้วแต่ละใบก็เปิดการ์ดใหม่จากสต็อคของพวกเขาอีกครั้งเพื่อดูว่าใครมีบัตรสูงสุด สิ่งนี้จะดำเนินต่อไปจนกระทั่งผู้เล่นคนเดียวชนะการต่อสู้ทั้งหมด 
(ไพ่ทุกใบของการต่อสู้นั้นไปที่กองทิ้งของผู้เล่นที่ชนะการต่อสู้จากนั้นทุกคนก็เปิดไพ่ใหม่เมื่อสต็อกของผู้เล่นหมดไพ่พวกเขาก็หันกองทิ้งของพวกเขาคว่ำลง สิ่งนี้จะดำเนินต่อไปจนกว่าผู้เล่นจะออกจากการ์ดของเขา / เธอทั้งหมดจากนั้นผู้เล่นที่มีจำนวนไพ่สูงสุดชนะ)
ตัวอย่าง 'การต่อสู้' กับผู้เล่นสามคน:
- 4, 8, แจ็ค: 
แจ็คชนะ - 7, เอซ, ราชินี: 
เอซชนะ - 10, 10, King: 
King ชนะ - 3, Joker, 2: 
3 ชนะ - Ace, Joker, 2: 
2 ชนะ - 3, Queen, Ace: 
3 ชนะ - Queen, Queen, 9: 
Queen & Queen กำลังมี 'สงคราม' ดังนั้นจึงดำเนินการต่อด้วยไพ่ใหม่สองใบ: 4, 8;
8 ชนะ - 4, 4, 4: 
ทุกคนมี 'สงคราม' ดังนั้นมันจะดำเนินต่อไปด้วยไพ่ใหม่สามใบ: 8, Ace, 2;
2 ชนะ - แจ็ค, 5, แจ็ค: 
แจ็ค & แจ็คกำลังมี 'สงคราม' ดังนั้นจึงยังคงมีไพ่ใหม่สองใบ: 5, 5;
5 & 5 ก็เท่ากันดังนั้น 'สงคราม' จะดำเนินต่อไปอีกครั้งด้วยไพ่ใหม่สองใบ: 10, คิง;
กษัตริย์ชนะ - Joker, Joker, Ace: 
ทุกคนมี 'สงคราม' ดังนั้นจึงดำเนินการต่อด้วยการ์ดใหม่สามใบ: 9, 7, 9;
9 & 9 ก็เท่ากันดังนั้น 'สงคราม' จะดำเนินต่อไปด้วยไพ่ใหม่สองใบ: แจ็ค, 3;
แจ็คชนะ 
ดังนั้นเข้าสู่ความท้าทายรหัส:
การป้อนข้อมูล:
STDIN พร้อมกับอาร์เรย์หรือสตริงที่จำลองอาร์เรย์ (การโทรของคุณ - แม้ว่าภาษาของคุณจะสนับสนุนอาร์เรย์) อาเรย์นี้มีไพ่ของการต่อสู้ตามลำดับเหตุการณ์ (ดูกรณีทดสอบเพื่อความเข้าใจที่ชัดเจนยิ่งขึ้น)
เอาท์พุท:
STDOUT ดัชนีของผู้เล่นที่ชนะการต่อสู้ 
คุณสามารถเลือกได้ว่าคุณต้องการให้เป็นศูนย์การจัดทำดัชนี (เช่น0, 1หรือ2) หรือหนึ่งในการจัดทำดัชนีผลผลิต (เช่น1, 2, 3)
กฏท้าทาย:
- อินพุตจะเป็นอาร์เรย์ / สตริงเดี่ยวที่แทนอาร์เรย์ ดังนั้นคุณไม่สามารถมีอาร์เรย์ของอาร์เรย์เพื่อทำให้มันง่ายขึ้น คุณไม่สามารถมีรายการตัวแทนสำหรับการ์ดที่ไม่ได้มีส่วนร่วมในสงคราม
 - เราใช้สัญลักษณ์ตัวเลขสำหรับหน้าการ์ดแทนที่จะเป็นตัวอักษร ดังนั้น Ace / Joker = 
1; แจ็ค =11; ราชินี =12; และพระมหากษัตริย์13= - ในความท้าทายนี้เราสามารถสมมติว่าเราเล่นกับผู้เล่น 3 คนเสมอ
 - สามตัวแรกแสดงถึงการเริ่มต้นของ 'การต่อสู้' เมื่อผู้เล่นสองคนขึ้นไปมี 'สงคราม' ไพ่ต่อเนื่องในอาเรย์จะระบุการต่อสู้ของพวกเขา (ดูกรณีทดสอบเพื่อความเข้าใจที่ชัดเจนยิ่งขึ้น)
 
กฎทั่วไป:
- นี่คือการติดแท็กรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในไบต์ชนะ
นี่ไม่ได้หมายความว่าไม่ควรป้อนภาษาที่ไม่ใช่การเล่นกอล์ฟ ลองคิดคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรมทุกภาษา - โปรดระบุการจัดทำดัชนี (ที่เป็นศูนย์หรือหนึ่งดัชนี) ที่คุณใช้สำหรับการส่งออก
 
กรณีทดสอบ:
Test case 1:  [4, 8, 11]                 ->  2 (or 3)
Test case 2:  [7, 1, 12]                 ->  1 (or 2)
Test case 3:  [10, 10, 13]               ->  2 (or 3)
Test case 4:  [3, 1, 2]                  ->  0 (or 1)
Test case 5:  [1, 1, 2]                  ->  2 (or 3)
Test case 6:  [3, 12, 1]                 ->  0 (or 1)
Test case 7:  [12, 12, 9, 4, 8]          ->  1 (or 2)
Test case 8:  [4, 4, 4, 8, 1, 2]         ->  2 (or 3)
Test case 9:  [11, 5, 11, 5, 5, 10, 13]  ->  2 (or 3)
Test case 10: [1, 1, 1, 9, 7, 9, 11, 3]  ->  0 (or 1)
Test case 11: [13, 13, 4, 1, 3]          ->  1 (or 2)
Test case 12: [13, 4, 13, 2, 3]          ->  2 (or 3)