지하의 왕 과학자 인 Alphys는 새로운 퍼즐의 프로토 타입을 완성했습니다. 그러나 그녀는 그것을 기꺼이 테스트 할 사람을 찾지 못하는 것 같습니다.
그녀의 퍼즐 규칙은 다음과 같습니다.
목표는 왼쪽의 가장 중앙 타일에서 시작하여 오른쪽으로 이동하는 것입니다. 짝수 높이의 퍼즐의 경우 두 개의 중앙 타일 아래에서 시작하십시오. (예 : 인덱스가없는 4x4 배열에서 시작 위치는 [2,0]-행 2, 열 0입니다. 인덱스가없는 5x5 배열에서 시작 위치는 [2,0]-행 2, 열입니다. 0)
각 컬러 타일에는 고유 한 "가상적"기능이 있습니다.
- 분홍색 및 녹색 타일 ( "P"및 "G"로 표시)은 아무 작업도 수행하지 않습니다.
- 빨간색과 노란색 타일 ( "R", "Y")은 통과 할 수 없습니다.
- 주황색 타일 ( "O")은 플레이어가 주황색 냄새를 맡게합니다.
- 자주색 타일 ( "U")은 플레이어가 향하는 방향으로 다음 타일로 향하게하여 레몬 냄새를냅니다.
- 플레이어가 주황색 냄새 가 나지 않는 한 파란색 타일 ( "B")을 통과 할 수 있습니다.
풍미 역학을 명확히하기 위해, 플레이어의 냄새는 무기한 또는 다른 냄새가 나는 타일에 의해 재정의 될 때까지 지속됩니다. 즉, 플레이어가 주황색 타일을 밟으면 자주색 타일을 밟을 때까지 주황색 냄새가납니다.
또한 파란색 타일에 수직 또는 수평으로 인접한 노란색 타일은 파란색 타일도 통과 할 수 없게합니다.
당신의 임무는 입력으로 퍼즐의 레이아웃을 나타내는 2 차원 문자 배열 (또는 1D 문자열 배열 또는 다른 유효한 형식)을 허용하고 별표 또는 일부로 원래 퍼즐과 해결 된 퍼즐을 모두 출력하는 프로그램이나 함수를 작성하는 것입니다 올바른 경로를 보여주는 다른 문자. 주어진 퍼즐을 풀 수 있다고 가정하십시오.
이 퍼즐을 예로 사용하십시오.
BGYBG
PGPBG
PUBPB
OUGYB
PPOPP
프로그램은 다음을 출력합니다 :
BGYBG
PGPBG
PUBPB
OUGYB
PPOPP
BGYBG
PGPBG
*****
OUGYB
PPOPP
사용 된 모든 퍼즐은 이것을 사용하여 생성되어야합니다 .
표준 코드 골프 규칙이 적용됩니다. 최상의 답변은 각 언어마다 가장 짧을 것입니다. 답변에는 언어, 바이트 수 및 세 가지 테스트 사례가 포함되어야합니다. 처음 두 개는 원하는 레이아웃이 될 수 있지만 세 번째는 다음과 같아야합니다.
RRRR
RPPR
PUOR
RPBP