บทนำ
Boardgames เป็นการเล่นแบบคลาสสิคระหว่างเด็ก ๆ แต่มีเด็กบางคนที่รู้สึกเบื่อการเล่นเกมกระดานเป็นขั้นเป็นตอน ตอนนี้พวกเขาต้องการให้แสดงผลลัพธ์ก่อนที่พวกเขาจะวางมือบนกระดาน
ท้าทาย
สมมติบอร์ดนี้เป็นเกม: >---#<---X---<X<--#-$
> means the start of the game
- means a position without danger
< means the player should return one step back
X means the player won't move next round
# means a portal where the player returns to the start position
$ the first player to get there or after there wins the game
อินพุตประกอบด้วยสตริงที่มีลักษณะของบอร์ดเกมที่อธิบายไว้ข้างต้นและสองอาร์เรย์ที่มีค่าบางค่า (จาก1
ถึง6
) เพื่อให้ผู้เล่นทั้งสอง (เด็กA
และเด็กB
) ได้รับเมื่อเล่นหนึ่งคิวบ์
ทั้งสองอาร์เรย์จะมีความยาวเท่ากัน> = 1
เด็ก A
เริ่มเกมเสมอ
คุณต้องเอาท์พุทเด็กที่มีจุดสิ้นสุดหรือใกล้ถึงจุดสิ้นสุดก่อน
ถ้าไม่มีใครจบและเด็กทั้งคู่อยู่ในตำแหน่งเดียวกัน 0
หรือค่าผิดพลาดอื่น ๆ
หากหนึ่งอาร์เรย์วิ่งออกไปในขณะที่อีกคนหนึ่งมีลูกเต๋าเหลืออยู่ (เนื่องจากผู้เล่นคนหนึ่งหายไปหลายรอบใน Xs) ควรใช้ลูกเต๋ากลิ้งที่เหลืออยู่
สำหรับงานนี้คุณสามารถสร้างโปรแกรม / ฟังก์ชั่นที่อ่านอินพุตจาก stdin หรือรับพารามิเตอร์ / ข้อโต้แย้งและเอาท์พุท / ผลตอบแทน / พิมพ์เด็กผู้ชนะ
ตั้งแต่นี้เป็นรหัสกอล์ฟคำตอบสั้นที่สุดในไบต์ชนะ!
ตัวอย่างอินพุตและเอาต์พุต
นอกจากนี้คุณยังสามารถใช้รูปแบบการป้อนข้อมูลที่แตกต่างกันได้ แต่คุณควรรับค่า boardgame, kid-A และ kid-B เท่านั้น
ตัวอย่างที่ 1:
board: >---#<---X---<X<--#-$
kid-A: [3,6,6,5,2,1]
kid-B: [4,5,3,5,5,5]
output: A
อธิบายว่า:
>---#<---X---<X<--#-$ # both kids in position
B--A#<---X---<X<--#-$ # kid-A moved 3 to -
B--A#<---X---<X<--#-$ # kid-B moved 4 to # and returned home
B---#<---A---<X<--#-$ # kid-A moved 6 to X and will wait one round
B---#<---A---<X<--#-$ # kid-B moved 5 to < returned one to # and returned home
>--B#<---A---<X<--#-$ # kid-B moved 3 to -
>--B#<---X---<A<--#-$ # kid-A moved 6 to < returned one to X and will wait again
>---#<--BX---<A<--#-$ # kid-B moved 5 to -
>---#<---X--B<A<--#-$ # kid-B moved 5 to < returned one to -
>---#<---X--B<X<--#A$ # kid-A moved 5 to -
>---#<---X---<X<-B#A$ # kid-B moved 5 to -
>---#<---X---<X<-B#-$A # kid-A moved 2 and won the game!
ตัวอย่างที่ 2:
board: >-<<<<<$
kid-A: [1,2,3]
kid-B: [5,5,4]
output: 0
ตัวอย่างที่ 3:
board: >-<-<#<-<-<-$
kid-A: [5,4,2]
kid-B: [1,1,1]
output: B
อธิบายว่า:
>-<-<#<-<-<-$ # both kids in position
>-<-<#<-<-<-$ # kid-A moved 5 to # returned home
AB<-<#<-<-<-$ # kid-B moved 1 to -
>B<A<#<-<-<-$ # kid-A moved 4 to < returned one to -
>B<A<#<-<-<-$ # kid-B moved 1 to < returned one to -
AB<-<#<-<-<-$ # kid-A moved 2 to # returned home
AB<-<#<-<-<-$ # kid-B moved 1 to < returned one to -
Current position: (A:0, B:1) output: B