Ваша программа должна принимать многострочную строку, например так:
#############
# #
# 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) может быть что угодно, а не только «Как вы хотите переместить»? Это на самом деле не влияет на ответы, кроме гольфистости.