โปรแกรมของคุณต้องใช้สตริงที่มีหลายแถวเช่นนี้
#############
# #
# p #
# #
#############
p
เป็นผู้เล่นและ#
เป็นบล็อก
ตอนนี้ภายใต้ที่ใน terminal ควรเป็นสายอินพุตพูดว่า:
How do you want to move?
หากผู้เล่นประเภทที่l
เขาต้องเดินออกไปเมื่อไม่มีบล็อกอื่น ๆ เมื่อมีบล็อกเขาไม่สามารถผ่านและไม่ย้ายแน่นอนตอนนี้เอาท์พุทใน terminal จะต้องมีการปรับปรุง ( และเอาต์พุตก่อนหน้าจะถูกล้าง / เขียนทับ):
#############
# #
# p #
# #
#############
เขาสามารถพิมพ์l
ซ้ายซ้ายr
ขวาu
ขึ้นและd
ลง
อินพุตจะเป็นแบบหลายบรรทัดเสมอ แต่จะไม่ถูกเติมด้วยช่องว่างในสี่เหลี่ยมที่สมบูรณ์แบบเสมอ นอกจากนี้แฮชสามารถอยู่ที่ใดก็ได้ในสตริงและจะไม่เชื่อมต่อกันเสมอ ตัวอย่างเช่น:
## ##
# #
## p
#
เป็นกรุที่ถูกต้อง (สังเกตการขาดช่องว่างต่อท้ายในแต่ละบรรทัด)
หากผู้เล่นออกนอกสายเขาไม่จำเป็นต้องแสดง แต่ถ้าเขากลับมาใหม่เขาจะต้องแสดงอีกครั้ง
และขอบเขตของ "นอก" สตริงเป็นlength(longest_line)
โดยnumber_of_lines
สี่เหลี่ยมดังนั้นแม้ว่าหนึ่งบรรทัดไม่ได้มีเบาะที่มีช่องว่างด้านขวาว่าตำแหน่งจะไม่ถือว่านอกขอบเขต ตัวอย่างการใช้ดันเจี้ยนก่อนหน้านี้:
## ##
# #p
##
#
บรรทัดที่สองไม่มีช่องว่างที่ p อยู่ในขณะนี้ แต่นั่นไม่สำคัญ
ในที่สุดโปรแกรมของคุณจะต้องวนซ้ำไปเรื่อย ๆ
กรณีทดสอบ
กรณีทดสอบ 1:
####
# p#
#
####
How do you want to move?
d
####
# #
# p
####
กรณีทดสอบ 2:
####
p#
#
####
How do you want to move?
l
####
p #
#
####
How do you want to move?
d
####
#
p #
####
How do you want to move?
l
####
#
p #
####
How do you want to move?
l
####
#
#
####
How do you want to move?
r
####
#
p #
####
แน่นอนว่าสิ่งเหล่านี้ยังไม่สมบูรณ์ รหัสของคุณควรจะห่วงตลอดไปและล้างหน้าจอระหว่างแต่ละเอาท์พุท
เอาต์พุตของคุณได้รับอนุญาตให้ป้อนข้อมูลเป็นHow do you want to move?\n<input>
หรือHow do you want to move?<input>
(เช่นคุณไม่ต้องการอินพุตในบรรทัดว่าง) และคุณไม่จำเป็นต้องมีบรรทัดว่างระหว่างบรรทัดสุดท้ายของดันเจี้ยนและพรอมต์ (ไม่สามารถอยู่ในบรรทัดเดียวกันได้)
ช่องโหว่มาตรฐานไม่ได้รับอนุญาต! นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดในหน่วยไบต์ชนะ!
l
, r
, u
หรือd
) สามารถเป็นอะไรก็ได้ที่ไม่เพียง แต่ "วิธีการที่คุณต้องการที่จะย้าย"? มันไม่ส่งผลกระทบต่อคำตอบจริงๆยกเว้นความกอล์ฟ