당신의 인생은 이것에 달려 있습니다. 깜박하지 마십시오. 깜박하지 마십시오. 깜박이고 당신은 죽었습니다. 그들은 빠르다. 당신이 믿을 수있는 것보다 더 빠릅니다. 등을 돌리지 말고 멀리 보지 말고 깜박이지 마십시오! 행운을 빕니다.
수양 천사 는 다른 존재 (또 다른 천사)에 의해 관찰되는 동안 움직일 수없는 외계 종족입니다. 그들은 희생자들을 제 시간에 돌려 보내 먹이를줍니다 귀하 ( 의사 )는 일부 객실에 갇혀 있으므로 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
).