Ваша програма повинна приймати багаторядкові рядки, наприклад:
#############
# #
# p #
# #
#############
p
є гравцем і #
є блоком.
Тепер під цим в терміналі повинен бути рядок введення, що говорить:
How do you want to move?
Якщо типи гравців l
йому належать піти ліворуч, коли блоку немає, інакше, коли є блок, він не може пройти і, звичайно, не рухається, тепер вихід у терміналі повинен бути оновлений ( і попередній вихід очищений / перезаписаний):
#############
# #
# 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
) може бути що завгодно, а не тільки «Як ви хочете перемістити»? Це не дуже впливає на відповіді, за винятком шаленості.