Вхідні дані
- Двійкова матриця представляє стіни підземелля.
- Позиція гравця в підземеллі.
- Напрямок , з яким гравець зараз стикається (0 = Північ, 1 = Схід, 2 = Південь, 3 = Захід)
Вихідні дані
Псевдо-3D зображення стін, які знаходяться в полі зору програвача, як мистецтво ASCII розміром символів.
Нижче наведено кілька можливих вихідних кадрів, а також відповідну карту та компас, які допоможуть отримати висіти його (але малювання карти та циркуля не є частиною завдання).
Специфікація
Поле зору
Гравець має стін в його поле зору, мічених від до . Нижче розташовані позиції стін щодо гравця (жовтого кольору) у всіх можливих напрямках.
Малювання стін
Стіни повинні бути намальовані від до у такому точному порядку, враховуючи, що будь-яка окреслена раніше деталь може бути перезаписана ближчими стінами. Ви, звичайно, можете реалізувати це по-різному, доки кінцевий результат буде однаковим.
Весь обсяг звертається з 7 різними символами: " "
, "'"
, "."
, "|"
, "-"
, "_"
і ":"
.
Оскільки деталізація форм стін у корпусі цього виклику зробить це занадто довгим, вони натомість надаються у наступному посиланні TIO:
Символи, які не є частиною даної стіни, позначені символами a "?"
на цих діаграмах. Вони повинні розглядатися як "прозорі" символи, які взагалі не малюються. З іншого боку, всі простори в стіні є "суцільними" і повинні замінити будь-які інші символи, які, можливо, раніше були намальовані там.
Правила
Про вхід
- Ви можете використовувати або 0-індексовані, або 1-індексовані координати.
- Ви можете використовувати 4 різних значення на ваш вибір для напрямків.
- Ви можете припустити, що по краях завжди будуть довколишні стіни.
- Гравець гарантовано розміститься на порожньому квадраті.
- Вхід гарантовано є дійсним.
Про вихід
- Стіни повинні бути намальовані точно так, як описано.
- Однак формат виводу також є гнучким: один рядок, масив рядків, матриця символів тощо.
- Простір провідних та кінцевих пробілів прийнятний до тих пір, поки він є послідовним.
Це код-гольф .
Тестові справи
У всіх тестових випадках використовується наступна матриця:
[ [ 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:
------------------------------ ------------------------------
'. __ '.
|'. .'| |
| '. .' | |----.--------------.-------
| | '. .' | | | | |
| | |: :| | | | | |
| | |: :| | | | | |
| | .' '. | | | | |
| .' '. | |----'--------------'-------
|.' '.|__ |
.' .'
Пов'язані завдання:
Цей виклик з 2013 року тісно пов'язаний. Але він має інший критерій виграшу (код-виклик), значно слабкішу специфікацію виводу та вимагає інтерактивного вводу / виводу.