อินพุต
- เมทริกซ์ไบนารีแสดงถึงผนังของดันเจี้ยน
- ตำแหน่งของผู้เล่นในดันเจี้ยน
- ทิศทางที่ผู้เล่นกำลังเผชิญ (0 = ทิศเหนือ, 1 = ทิศตะวันออก, 2 = ทิศใต้, 3 = ทิศตะวันตก)
เอาท์พุต
การนำเสนอหลอกแบบ 3 มิติของกำแพงที่อยู่ในมุมมองของผู้เล่นในฐานะศิลปะ ASCII ที่มีอักขระตัว
ด้านล่างนี้เป็นเฟรมเอาต์พุตจำนวนมากที่เป็นไปได้พร้อมกับแผนที่และเข็มทิศที่สอดคล้องกันเพื่อช่วยให้แขวนได้ (แต่การวาดแผนที่และเข็มทิศไม่ใช่ส่วนหนึ่งของความท้าทาย)
สเปค
สาขาดู
ผู้เล่นที่มีผนังในด้านของเขาในมุมมองที่มีป้ายกำกับจากเพื่อM ด้านล่างคือตำแหน่งของกำแพงที่สัมพันธ์กับผู้เล่น (เป็นสีเหลือง) ในทุกทิศทางที่เป็นไปได้
การวาดกำแพง
ผนังควรถูกดึงจากถึงตามลำดับที่แน่นอนนี้เนื่องจากส่วนใดส่วนหนึ่งที่วาดไว้ก่อนหน้านี้อาจถูกเขียนทับโดยกำแพงที่อยู่ใกล้กว่า แน่นอนว่าคุณสามารถนำไปใช้งานต่างกันได้ตราบใดที่ผลลัพธ์สุดท้ายยังเหมือนเดิม
การส่งออกทั้งหมดจะถูกวาดด้วย 7 ตัวอักษรที่แตกต่าง: " "
, "'"
, "."
, "|"
, "-"
, และ"_"
":"
เนื่องจากรายละเอียดรูปร่างของผนังในเนื้อความของความท้าทายนี้จะทำให้มันยาวเกินไปพวกมันจึงถูกจัดเตรียมไว้ในลิงค์ TIO ต่อไปนี้:
อักขระที่ไม่ได้เป็นส่วนหนึ่งของกำแพงที่ระบุจะถูกทำเครื่องหมายด้วย"?"
ในแผนภาพเหล่านี้ พวกเขาจะต้องถือว่าเป็นตัวอักษร 'โปร่งใส' ที่ไม่ได้วาดเลย ในทางกลับกันช่องว่างทั้งหมดภายในกำแพงเป็น 'ทึบ' และต้องเขียนทับตัวละครอื่น ๆ ที่อาจถูกวาดไว้ก่อนหน้านี้
กฎระเบียบ
เกี่ยวกับอินพุต
- คุณอาจใช้ , , และในรูปแบบที่เหมาะสม
- คุณสามารถใช้พิกัด 0 ดัชนีหรือดัชนี 1 ดัชนีก็ได้
- คุณสามารถใช้ค่าที่แตกต่างกัน 4 ค่าสำหรับเส้นทาง
- เมทริกซ์รับประกันได้ว่าจะมีอย่างน้อย 3
- คุณอาจคิดว่าจะมีกำแพงล้อมรอบอยู่เสมอบนขอบ
- ผู้เล่นรับประกันว่าจะอยู่ในตารางที่ว่างเปล่า
- อินพุตรับประกันว่าถูกต้อง
เกี่ยวกับผลลัพธ์
- ผนังจะต้องวาดตรงตามที่อธิบายไว้
- อย่างไรก็ตามรูปแบบผลลัพธ์มีความยืดหยุ่นเช่นสตริงเดี่ยวอาร์เรย์ของสตริงเมทริกซ์ของอักขระ ฯลฯ
- ช่องว่างนำหน้าและต่อท้ายเป็นที่ยอมรับตราบใดที่ยังสอดคล้องกัน
กรณีทดสอบ
กรณีทดสอบทั้งหมดใช้เมทริกซ์ต่อไปนี้:
[ [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ],
[ 1, 0, 1, 1, 1, 0, 0, 0, 0, 1 ],
[ 1, 0, 1, 0, 1, 0, 0, 1, 0, 1 ],
[ 1, 0, 0, 0, 0, 0, 1, 1, 0, 1 ],
[ 1, 0, 0, 1, 0, 0, 0, 1, 0, 1 ],
[ 1, 0, 0, 1, 1, 0, 1, 1, 0, 1 ],
[ 1, 1, 1, 1, 0, 0, 0, 0, 0, 1 ],
[ 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 ],
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] ]
x=3, y=3, d=0
x=6, y=4, d=3
x=4, y=4, d=1
x=1, y=5, d=2
x=7, y=7, d=3
x=6, y=6, d=1
x=8, y=1, d=2
x=7, y=6, d=1
ผลลัพธ์ที่คาดหวัง:
------------------------------ ------------------------------
x=3, y=3, d=0: x=6, y=4, d=3:
------------------------------ ------------------------------
__ __ '. .'
|'. .'| | |
| '.--------------.' | |----. |
| | | | | | '.--------. |
| | | | | | | | |
| | | | | | | | |
| | | | | | .'--------' |
| .'--------------'. | |----' |
__|.' '.|__ | |
.' '.
------------------------------ ------------------------------
x=4, y=4, d=1: x=1, y=5, d=2:
------------------------------ ------------------------------
.' __ ________________________ .'
| | |
-------. .----| | |
| '.--------.' | | | |
| | | | | | |
| | | | | | |
| .'--------'. | | | |
-------' '----| | |
| __|________________________|
'. '.
------------------------------ ------------------------------
x=7, y=7, d=3: x=6, y=6, d=1:
------------------------------ ------------------------------
'. '.
|'. |'.
| '. | '.
| | '. .- | |--.--------.--------.-
| | |: :| | | | | |
| | |: :| | | | | |
| | .' '- | |--'--------'--------'-
| .' | .'
|.' |.'
.' .'
------------------------------ ------------------------------
x=8, y=1, d=2: x=7, y=6, d=1:
------------------------------ ------------------------------
'. __ '.
|'. .'| |
| '. .' | |----.--------------.-------
| | '. .' | | | | |
| | |: :| | | | | |
| | |: :| | | | | |
| | .' '. | | | | |
| .' '. | |----'--------------'-------
|.' '.|__ |
.' .'
ความท้าทายที่เกี่ยวข้อง:
ความท้าทายในปี 2556นี้มีความเกี่ยวข้องอย่างใกล้ชิด แต่มันมีเกณฑ์การชนะที่แตกต่างกัน (การท้าทายรหัส) ซึ่งเป็นข้อมูลจำเพาะที่หลวมมากของเอาต์พุตและต้องใช้ I / O แบบโต้ตอบ