บ๊อบถูกลักพาตัวและติดอยู่ในเขาวงกต งานของคุณคือช่วยเขาหาทางออก แต่เนื่องจากมันเป็นเขาวงกตที่มืดและน่ากลัวเขาจึงไม่เห็นอะไรเลย เขาสามารถรู้สึกได้ถึงผนังเมื่อเขาวิ่งเข้าไปในนั้นและรู้เมื่อเขาพบทางออก แต่ไม่รู้อะไรอีกแล้ว
เนื่องจากเขาต้องเรียกใช้โปรแกรมของคุณด้วยหน่วยความจำจึงต้องสั้นที่สุด
หมายเหตุ: ฉันใช้ปัญหานี้จากhttp://acmgnyr.org/year2016/problems.shtmlแต่ปรับใช้เล็กน้อยและเขียนโปรแกรมผู้พิพากษา / กรณีทดสอบด้วยตัวเอง
สเปค
- นี่เป็นปัญหาเชิงโต้ตอบดังนั้นโปรแกรมของคุณจะส่งออกไปยัง stdout และรับคำตอบจาก stdin
- โปรแกรมหนึ่งเอาท์พุทของคุณสามารถของการย้ายright,left, ,downup
- จากนั้นจะได้รับเป็นอินพุตอย่างใดอย่างหนึ่งต่อไปนี้:
- wall- นี่หมายความว่าบ็อบชนกำแพง บ๊อบจะอยู่ในที่เดียวกัน
- solved- บ๊อบพบทางออกแล้ว! โปรแกรมของคุณควรออกโดยไม่ต้องพิมพ์อะไรอีก
- ok- บ๊อบสามารถเคลื่อนที่ในทิศทางที่กำหนดได้
 
- หากเขาวงกตไม่มีทางออกโปรแกรมของคุณควรส่งออกno exitเพื่อแจ้งให้ Bob รู้ว่าเขาควรยอมแพ้ โปรแกรมของคุณควรออกโดยไม่ต้องพิมพ์อะไรอีก
- เนื่องจากบ็อบกำลังรีบออกไปโปรแกรมของคุณจึงไม่ควรเคลื่อนไหวออกไปภายนอก ในคำอื่น ๆโปรแกรมของคุณไม่ได้รับอนุญาตให้ย้ายไปในทิศทางเดียวกันจากตารางเดียวกันสองครั้ง
- นี่คือรหัสกอล์ฟโปรแกรมที่สั้นที่สุดชนะ!
ตัวอย่าง
ในตัวอย่างต่อไปนี้Sเป็นตารางเริ่มต้นXคือทางออก#เป็นผนังและช่องว่างเป็นช่องสี่เหลี่ยมที่ถูกต้อง เนื่องจากไม่มีคำตอบที่ถูกต้องเพียงอย่างเดียวนี่เป็นเพียงตัวอย่างของการแก้ปัญหา นอกจากนี้โปรดทราบว่าภาพวาดของเขาวงกตนั้นอยู่ที่นั่นเพื่อให้คุณเห็นและโปรแกรมของคุณจะไม่ได้รับสิ่งเหล่านั้นเป็นอินพุต
########
#S     #
###### #
     # #
     #X#
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              wall
down
              ok
right
              wall
down
              ok
right
              wall
down
              solved
#####
# S #
#####
right
              ok
right
              wall
down
              wall
up
              wall
left
              ok
down
              wall
up
              wall
left
              ok
down
              wall
up
              wall
left
              wall
right
              ok
no exit
              solved
###############################
#S                            #
##############       ###      #
             #       #X#      #
             #                #
             ##################
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              ok
right
              wall
down
              ok
right
              wall
down
              ok
right
              wall
down
              ok
right
              wall
down
              wall
left
              ok
down
              wall
up
              ok
up
              ok
left
              ok
down
              ok
down
              ok
down
              wall
left
              ok
down
              wall
up
              ok
up
              ok
left
              ok
down
              ok
down
              ok
down
              wall
left
              ok
down
              wall
up
              ok
up
              ok
left
              wall
down
              ok
left
              wall
down
              ok
left
              ok
down
              wall
up
              wall
left
              ok
down
              wall
up
              solved
โปรแกรมตรวจสอบ
- ฉันเขียนตัวตรวจสอบวิธีแก้ไขใน Python คุณสามารถค้นหาได้ที่https://gist.github.com/Maltysen/f0186019b3aa3812d812f8bb984fee19
- เรียกใช้เหมือนpython mazechecker.py ./mazesolverกัน
- mazesมันจะทดสอบโปรแกรมของคุณในเขาวงกตทั้งหมดที่อยู่ในโฟลเดอร์ที่เรียกว่า
- เขาวงกตอยู่ในไฟล์แยกต่างหากในรูปแบบเดียวกันจากด้านบน
- มันจะตรวจสอบเงื่อนไขทั้งหมดที่ระบุไว้ข้างต้นและแจ้งให้คุณทราบหากการแก้ปัญหาของคุณละเมิดใด ๆ
- python mazechecker.py -d ./mazesolverคุณสามารถมีได้พิมพ์ข้อมูลการวินิจฉัยเพิ่มเติมกับ
- คุณสามารถค้นหาซิปmazesโฟลเดอร์ที่นี่ คุณสามารถเพิ่มของคุณเองหากคุณต้องการ
solvedเมื่อส่งออกno exitหรือไม่ ถ้าเป็นเช่นนั้นโปรดระบุไว้ในกฎไม่ใช่เฉพาะในกรณีทดสอบ!
                x,yและไปupพร้อมตอบกลับwallจากนั้นrightตอบกลับอีกครั้งwallฉันขอลองupอีกครั้งได้ไหม หรือเป็นเพียงleftและdownยังคงใช้ได้ตั้งแต่ฉันยังไม่ได้ย้ายจากสแควร์นี้หรือยัง