프로그램은 다음과 같이 여러 줄로 된 문자열을 가져와야합니다.
#############
# #
# 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
) 아무것도 할 수있다,뿐만 아니라 "어떻게 이동하겠습니까?" 골을 제외하고는 실제로 답변에 영향을 미치지 않습니다.