손잡이는 훌륭하지만 모두 문을 열면 항상 주변 벽이 움푹 들어갑니다. 다음과 같이 방의 ASCII 아트를 입력해야합니다.
+---------+--X --X --+-----+
| \ \ |\ | \ |
| \ \ | \ | \|
| X | \ | X
| / | | \ X
| / | \ /
| / | \ / |
+---X --+-------X------+-----+
그리고 다음과 같이 문을 정지시켜 방을 출력하십시오 :
+---------+--X --X --+-----+
| \ . \ |\ | \.|
| \ \ | \ .| \|
| X | \ | X
| / | |. \ X
| / .| \ /
|. / | .\ / |
+---X --+-------X------+-----+
사양:
- 아스키 실 (입력)으로 구성된다
+
,-
그리고|
. 이 캐릭터는 순전히 장식 적입니다. 그들은 모두+
s 가 될 수 있지만 끔찍하게 보일 것입니다. 또한 경첩 (X
)과 문 (/
또는\
)이 포함됩니다. - 문은
/
또는으로 구성\
됩니다. "hinge"문자부터 시작하여 2 개 이상의 단위 (문자)에 대해X
대각선으로 직접 이동합니다 (1 inx
및 1 in 변경y
). 문에 문정지를 배치 할 위치를 찾으려면 (문마다 항상 하나의 문정지가 있음) 문에 대한 출입구를 찾으십시오. 출입구는 항상 하나의 경첩에서 시작하여 출입문의 길이와 위, 아래, 왼쪽 또는 오른쪽과 같은 양의 공간으로 이동합니다. 그 후의 다음 공간은 항상 벽입니다. 예를 들어이 문에서 출입구는
D
s 로 표시됩니다 .\ \ ---DDX-----
출입구가 발견되면 문에 도달하기 위해 시계 방향 또는 시계 반대 방향으로 이동해야하는지 확인하십시오. 예를 들어 위의 예시 문에서 시계 방향으로 이동해야하며이 문에서는 시계 반대 방향으로 이동해야합니다.
\ <- \ ) -----X ---
갈 길을 알고 나면 벽에 닿을 때까지 계속 문을 무시하십시오.
위의 예시 문에 대한 시각화는 다음과 같습니다.
파란색은 출입구이고 주황색은 시계 방향으로 가야한다는 것을 발견하고 빨간색은 벽에 도달 할 때까지 시계 방향으로 계속 진행합니다.
벽에 도달하면 벽의 경첩 (
X
)에서 (문의 길이) 공간으로 이동하여 벽에서 문쪽으로 한 공간을 이동하여 문을 바로 벽에 배치하지 마십시오..
그곳에. 문정지가 어떻게 배치되는지 보여주는 문 예는 다음과 같습니다.\ \ . ---DDX12---
모든 문에 대해 반복하고 결과를 출력하십시오! 이 게시물 상단의 예제 입력을 테스트 사례로 사용하여 프로그램이 유효한지 확인하십시오.
벽에 맞지 않는 문은 다음과 같이 처리 할 필요가 없습니다.
| / | / | / | / +-X --
또는:
/ / / +-X -- | |
- 이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 승리합니다.