บทนำ
จอนนี่ต้องการเล่น Frogger อย่างไรก็ตามเขาไม่ดีมาก ในความเป็นจริงเขาจะพยายามก้าวไปข้างหน้าและหลังจากแพลตฟอร์มได้ย้าย
ค้นหาว่ากบของจอนนี่สามารถไปถึงจุดสิ้นสุดของเส้นทางหรือว่ามันตายไปแล้วหรือไม่
ท้าทาย
โปรแกรมจะได้รับเป็นอินพุตของตาราง Frogger ที่ประกอบด้วย0
s และ1
s ด้วยรูปแบบต่อไปนี้:
- ตารางจะมีความกว้างและความยาวแบบสุ่มและอย่างน้อย 3x3
1
แสดงถึงแพลตฟอร์ม0
แสดงถึงน้ำF
แสดงถึงตำแหน่งเริ่มต้นของกบ- ทุกบรรทัดแรกและสุดท้ายของกริดจะถูกแต่งโดย
1
s เท่านั้นและจะไม่ย้ายและกบF
จะถูกวางที่สุ่มในบรรทัดสุดท้าย - เลเยอร์กลางทุกอันจะมีการเคลื่อนไหวอยู่เสมอและจะมี
<
หรือ>
ในตอนท้ายของทุกบรรทัดที่ระบุว่ามันเลื่อนไปทางซ้ายหรือขวา
อนุญาตให้ใช้การแทนที่สัญลักษณ์เหล่านี้ด้วยของคุณเองตราบใดที่สัญลักษณ์เหล่านี้มีความแตกต่างกันและคุณระบุการแทนที่ในคำตอบของคุณ
อินพุตอาจอยู่ในรูปแบบที่เข้ากันได้ (สตริงที่มีตัวแบ่งบรรทัดอาร์เรย์ของสตริงอาร์เรย์ของอักขระ ... )
กฏท้าทาย
- ทุกเทิร์นทุกแพลทฟอร์มจะเลื่อนหนึ่งช่องขึ้นอยู่กับทิศทางที่ระบุโดย
<
หรือ>
เครื่องหมาย - แพลตฟอร์มปรากฏขึ้นอีกครั้งที่อีกด้านหนึ่งของตารางถ้าพวกเขาถูกผลักออกจาก "หน้าจอ"
- หากกบอยู่บนแท่นเคลื่อนที่มันจะเคลื่อนที่ไปพร้อมกับมัน
- หลังจากนั้นกบจะกระโดดหนึ่งตารางไปยังแถวบนสุด กบจะย้ายทุกเทิร์น
- กบจะตายหากมันกระโดดในน้ำ (
0
) หรือสัมผัสกับด้านข้างของตารางพร้อมกับแท่นเคลื่อนที่
โปรแกรมของคุณต้องส่งออกค่าความจริงหากกบยังมีชีวิตอยู่และค่าที่ผิดพลาดเป็นอย่างอื่น
นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ ช่องโหว่มาตรฐานใช้
ตัวอย่าง
ตัวอย่างที่ 1
อินพุต
11111
00111>
00101<
1F111
เอาท์พุต
1
การกระทำ
ครบ 1:
11111
10011
01010
1F111
11111
10011
0F010
11111
เทิร์น 2:
11111
11001
F0100
11111
11111
F1001
10100
11111
ครบรอบ 3:
11111
1F100
01001
11111
1F111
11100
01001
11111
ตัวอย่างที่ 2
อินพุต
11111
00100<
00100<
1F111
เอาท์พุต
0
การกระทำ
ครบ 1:
11111
01000
01000
1F111
11111
01000
0F000
11111
เทิร์น 2:
11111
10000
F0000
11111
11111
F0000
10000
11111
ครบรอบ 3:
11111
00001
00001
11111
<
หรือ>
ในตอนท้าย
0
ด้านหน้าหรือมันจะรอต่อไป1
หรือไม่ ถ้ามันสามารถรอมันจะไปข้างหน้าในทุก ๆ1
หรือจะรออย่างชาญฉลาด? เช่นกับกรณีทดสอบ11111 00001< 00011< 11F11
จะเป็นเท็จเพราะมันกระโดดในน้ำ ( pastebin ของขั้นตอน ); มันจะเท็จเพราะมันเคลื่อนออกจากกรอบ ( pastebin ของขั้นตอน ); หรือจะเป็นความจริงเพราะมันรออย่างชาญฉลาดสำหรับแพลตฟอร์มที่สองก่อนที่จะกระโดดไปข้างหน้า ( pastebin ของขั้นตอน )?
0
อาจจะแก้ไขมันในคำอธิบายของความท้าทายที่กบจะก้าวไปข้างหน้าทุกครั้งที่เลี้ยวถึงแม้ว่ามันจะกระโดดลงไป
<
หรือ>
เพื่อให้เราสามารถใช้อาร์เรย์สี่เหลี่ยมเป็นอินพุตได้? อย่างไรก็ตามความท้าทายที่ดี!