การกดไลค์แบบข้อความจะไม่ยอมให้คุณเดินเข้าไปในกำแพงและให้คุณถอยกลับหากคุณพยายามทำ ทำไมเมื่อคุณทำให้ผู้เล่นเคลื่อนที่ไปในทิศทางที่ถูกต้องที่สุด
ความท้าทาย
เขียนโปรแกรมของฟังก์ชั่นที่กำหนดทิศทางและตารางขนาดตัวอักษร 3 ถึง 3 ตัวออกตารางเดียวกันหลังจากผู้เล่นทำตามขั้นตอน
ตัวอย่างเช่น,
9
#..
.@#
#.#
กลายเป็น
#.@
..#
#.#
อินพุต
ทิศทางจะถูกกำหนดโดยตัวเลขหลักเดียวจาก 1 ถึง 9 โดยแต่ละทิศทางสอดคล้องกับ 8 ทิศทางสำคัญและหยุดนิ่ง สิ่งนี้ได้มาจากตำแหน่งสัมพัทธ์ของตัวเลขบนแผงปุ่มกด:
ไม่มีทางตะวันตกเฉียงเหนือ .. \ | / ... 7 8 9 W- 4 5 6 -E ... 1 2 3 ../ | \ SW S SE
อย่างไรก็ตามคุณอาจใช้ตัวเลข 123, 456, 789 แทน 789, 456, 123 ได้อีกนัยหนึ่งคุณสามารถสลับแถวหรือหมายเลข 2 ด้านบนและล่างหากคุณเลือก เหล่านี้เป็นชุดค่าดัชนีที่ยอมรับได้เพียง 2 รายการเท่านั้นตาราง 3 โดย 3 จะประกอบด้วยอักขระ ASCII 3 ตัวที่สามารถพิมพ์ได้ซึ่งเป็นตัวแทนของพื้นผนังและเครื่องเล่น (ในกรณีทดสอบ
.
ใช้สำหรับพื้น#
s คือกำแพงและ@
เป็นเครื่องเล่น)- คุณอาจเลือกตัวละครที่โปรแกรมของคุณใช้ แต่คุณต้องระบุตัวอักษรเหล่านั้นในคำตอบและต้องสอดคล้องกับการทดลองหลายครั้ง
- ตัวละครที่เป็นตัวแทนของตัวละครมักจะอยู่ในช่วงกลางของ 3 โดย 3 ตารางและทิศทางจะอยู่ระหว่าง 1 และ 9 (รวม)
- คุณสามารถป้อนข้อมูลในลำดับใดก็ได้
- กริด 3 โดย 3 สามารถใส่เป็นถ่านแบบอาเรย์สตริงแบบสตริงความยาว 9 หรือแบบอื่นที่เหมาะสม
เอาท์พุต
- ส่งคืนจากฟังก์ชันหรือเอาต์พุตไปยัง StdOut หรือทางเลือกที่ใกล้เคียงที่สุด
- อนุญาตให้เว้นวรรคต่อท้ายและขึ้นบรรทัดใหม่
- คุณต้องใช้การแทนตัวอักษรเหมือนกับอินพุต
- รูปแบบเดียวกันที่อนุญาตสำหรับอินพุตได้รับอนุญาตสำหรับเอาต์พุต
ผู้เล่นเคลื่อนไหวอย่างไร
หากทิศทางที่ระบุถูกบล็อกโดยกำแพง (เช่นถ้าตัวอย่างด้านบนมีทิศทาง 6) ให้ดูที่ 2 ทิศทางที่ใกล้ที่สุด:
- หากทิศทางเดียว (และเพียงหนึ่งทิศทาง) ว่างให้ย้ายผู้เล่นไปในทิศทางนั้น
- หากไม่มีเส้นทางให้ดูที่ 2 ทิศทางถัดไปที่ใกล้เคียงที่สุด (ยกเว้นเส้นทาง 5) หากคุณพันรอบและไม่พบทิศทางที่เปิด (ผู้เล่นล้อมรอบด้วยกำแพง) อย่าขยับผู้เล่น
- หากทั้งสองทิศทางเปิดอยู่ให้เลือกหนึ่งทิศทางที่จะสุ่มเลือก
หากทิศทางที่กำหนดคือ 5 ห้ามเคลื่อนย้ายเครื่องเล่น
กรณีทดสอบ
( #
= ผนัง, .
= พื้น, @
= ผู้เล่น)
การป้อนข้อมูล: 9 # .. . @ # #. # เอาท์พุท: #. @ .. # #. # การป้อนข้อมูล: 3 # .. . @ # #. # เอาท์พุท: # .. .. # # @ # การป้อนข้อมูล: 7 ## # @ # .. # เอาท์พุท: ## @ ## #.# หรือ #.# .. # @. # การป้อนข้อมูล: 5 ... . @ ... เอาท์พุท: ... . @ ... การป้อนข้อมูล: 2 ### # @ # ### เอาท์พุท: ### # @ # ###
เกณฑ์การให้คะแนน
นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ
123;456;789
แทนได้789;456;123
หรือไม่
yuhjklbn
? ฉีก.