
당신의 인생은 이것에 달려 있습니다. 깜박하지 마십시오. 깜박하지 마십시오. 깜박이고 당신은 죽었습니다. 그들은 빠르다. 당신이 믿을 수있는 것보다 더 빠릅니다. 등을 돌리지 말고 멀리 보지 말고 깜박이지 마십시오! 행운을 빕니다.
수양 천사 는 다른 존재 (또 다른 천사)에 의해 관찰되는 동안 움직일 수없는 외계 종족입니다. 그들은 희생자들을 제 시간에 돌려 보내 먹이를줍니다 귀하 ( 의사 )는 일부 객실에 갇혀 있으므로 TARDIS에 도착해야합니다.
태스크
직사각형 방의 ASCII 표현이 주어지면 안전으로 연결되는 경로를 출력하는 프로그램을 작성하십시오. 진행 중 언제 라도 천사가 공격 할 수 있다면 그 경로는 안전하지 않습니다. 천사는 당신이나 다른 천사에게 보이지 않고 당신을 볼 수 있다면 공격 할 수 있습니다.
입력
입력은 두 부분입니다. 먼저, 당신이 향하고있는 방향 (NSEW). 다음 줄에서, 방의 표현, 시작 / 종료 위치 및 모든 천사의 위치 / 대면을 표시합니다.
아래 샘플은 한 천사가 서쪽을 향하고 있고 남쪽을 향하고 있음을 보여줍니다.
S
..........
....D.....
..........
..........
..........
..........
..........
..........
.........W
..........
...T......
.- 빈 공간D-닥터 (시작 위치)T-TARDIS (종료 위치)N,S,E,W-지정된 방향 (북쪽, 남쪽, 동쪽, 서쪽)을 향한 천사
시선
향한 방향이 45 도인 모든 공간을 볼 수 있습니다. 직각, 수직 또는 45도 대각선을 따라 다른 개체가 있으면 시야가 가려집니다. 다른 대각선은 시야를 방해 하지 않습니다 . 천사의 시선도 같은 방식으로 작동합니다. 예를 들어, 다음에서 -남쪽을 향하고 있다고 가정하면 시야를 나타냅니다.
........
...D....
..---...
.-----..
-------.
---N----
---.--N-
---.----
산출
출력은 종료 할 경로를 나타내는 문자열입니다. 안전한 경로가 여러 개인 경우 원하는 경로를 선택하십시오. 안전한 경로가 없으면을 출력하십시오 0. 지도가 잘못된 경우 충돌을 포함하여 원하는대로 수행하십시오. 방이 직사각형이 아니고 출구가 없으면 기형이라고 생각하십시오. 천사가 없다면 기형이 아니며 간단합니다.
각 단계마다 두 가지 중 하나를 수행 할 수 있습니다. NSEW 방향으로 이동하거나 위치를 변경하지 않고 NSEW 방향으로 돌립니다. 이동하려면 해당 방향의 문자를 출력하십시오. 방향을 향하도록하려면 F적절한 문자가 출력 됩니다. 예를 들면 다음과 같습니다.
SSFESSSSSSSW
입력 섹션에 제공된 샘플의 안전한 경로입니다. 남쪽으로 두 번 움직이고, 동쪽을 향하여 천사를 계속 본 다음 남쪽으로 일곱 번, 서쪽으로 한 번 움직여 TARDIS에 들어갑니다.
테스트 사례
1) 동쪽을 향한 천사를 돌아 다니며 TARDIS에 갈 수 있습니다. 당신이 그들 사이에 직접 밟지 않는 한, 그들은 서로 제자리에 고정되어 있으므로 어느 시점에서 어떤 방향을 향하든 상관 없습니다.
W
...D....
........
........
........
.E.....W
........
........
...T....
2)졌다. 그들을 지나칠 방법이 없습니다. 그들은 당신이 그들 사이를 밟을 때까지 서로를 볼 수 있습니다. 그 시점에서, 당신은 그들 둘 다를 직면 할 수없고 당신은 끝났습니다. 눈을 감고 끝내도 될 것입니다.
S
...D....
........
........
........
E......W
........
........
...T....
승리
표준 골프 규칙 및 허점이 적용되며 최소 바이트 수입니다. 곧 더 많은 테스트 사례를 얻으려고 노력하지만 그 동안 자유롭게 제안 해 드리겠습니다.
Doctor Who의 이미지와 인용문.
J).