IBM PC AT, YouTube (비디오 참조) , Wikipedia (기사 참조) 및 Sesame Street 에서 배운 대로 :
편지 H
는 알파벳 의 가장 무자비한 편지입니다 !
(실제로 Code Page 437의 두 가지 요소로 구성 될 때도 마찬가지입니다. 실제로는 훨씬 무자비합니다.)
에서 외계인처럼, 음 ... 어 ... 외계인 , 짐승은 끊임없이 알 가까이 오지 감히 모든 사람을 추구한다. 그들에 대한 추론은 없습니다. 멸망하지 않으려면 스쿼시해야합니다.
이 시나리오에서 우리는 당신이 당신의 마지막 삶에 있다고 가정하고, Wikipedia 스크린 샷에서와 같이 계란이없는 지형에서 평범한 야수를 만났습니다. 숫자 키패드가없고 직접 위 / 아래 / 왼쪽 / 오른쪽으로 만 이동할 수 있지만 짐승에게는 분명히 하나가 있으며 차례에 대각선으로 움직일 수 있습니다.
옵션 중 Beast의 선택은 플레이어와의 거리를 최소화하는 것입니다. 거리가 같으면 왼쪽에서 위로, 오른쪽에서 아래로 선호하는 타이 브레이킹이 수행되지만 명확하게 표시되는 명확성 매트릭스는 다음과 같습니다.
1 3 4
2 H 5
6 8 7
짐승은 결코 잠을 자지 않지만 다행히 플레이어보다 약간 느립니다. 그들은 매 턴마다 움직입니다 (두 번째 턴에서 교대를 시작함으로써 선수가 헤드 스타트하도록합니다). 플레이어로부터 멀어 지더라도 움직일 수 있으면 움직여야합니다.
닫힌 틈새에 앉아 움직일 수있는 벽 열차를 움직이면 짐승이 부서집니다. 이 평범한 짐승은 머리 당 2 포인트의 가치가 있습니다.
입력
열의 크기와 행의 맵 크기를 나타내는 정수 쌍입니다.
입력 열의 행 수, 각 열 크기 ... 단단한 벽 (
#
), 이동식 벽 (~
), 짐승 (H
), 플레이어 (O
) 또는 공간 만 포함합니다.플레이어가 이동을 시도 했음을 나타내는 U, D, L, R, 또는 W를 기다리는 입력입니다. 막힌 이동식 벽을 밀려 고하면 합법적 인 입력이므로 아무런 조치도 취하지 않습니다.
산출
aHHHH!
짐승이 플레이어를 죽인 경우 ... 또는 플레이어가 짐승없이 남았다면 아무것도 아닙니다점수
(참고 : 디버깅 목적 및 / 또는 오락을 위해 각 단계에서 상태를 출력 할 수는 있지만 여기에 게시하기에는 너무 깁니다.)
설명
지도는 단단한 벽으로 둘러싸여 있습니다.
차례대로 움직이는 사람의 순서는 결과에 중요합니다. 따라서 플레이어는 항상 먼저 진행 한 다음 화면에서 왼쪽에서 오른쪽으로 왼쪽에서 오른쪽으로 스윕 하면 짐승에게 초기 맵 위치를 기준으로 순서가 지정 됩니다 . (행 1 짐승은 행 2 짐승보다 먼저 움직이고, 같은 줄에있는 두 짐승은 다른 열보다 먼저 가장 낮은 열 번호를 가진 짐승이됩니다)
대각선으로 움직이는 짐승은 벽 사이의 압박이 필요한지 여부에 관계없이 인접한 대각선 공간으로 이동할 수 있습니다.
다른 쪽 끝에 공간이나 짐승이있는 경우 플레이어는 움직일 수있는 벽을 여러 줄로 밀 수 있습니다. 그러나 벽 사이에 고정되어 있지 않은 벽을 짐승 안으로 밀어 넣으려고하면 야수가 벽으로 취급되어 이동을 허용하지 않습니다.
턴 중 야수의 이동 결정은 턴 시작 시 플레이어의 위치를 기반으로합니다 . "플레이어와의 거리"에 대한 원하는 최적화는 "까마귀 비행으로"계산을 통해 이루어집니다. 정사각형 중심에서 플레이어 정사각형 중심까지 측정 한 것과 동일한 결과를 제공하는 근사치는 괜찮습니다.
우선 순위가 높은 Beast가 자리를 잡았 기 때문에 Beast가 첫 번째로 선호하는 이동을 한 번에 할 수 없다면, 이동이 가능한 경우에 대비하여 차선책을 선택합니다.
샘플 케이스
간단한 호감
입력
5 3
#####
#O~H#
#####
R
산출
2
선호 매트릭스-> 죽음
입력
5 5
#####
#O #
# ~ #
# H#
#####
WWDW
산출
aHHHH!
0
선호 매트릭스-> 승리
입력
5 5
#####
#O #
# ~ #
# H#
#####
WRD
산출
2
사신을 기다리는
입력
5 5
#####
#O #
# ~ #
# H#
#####
WWW
산출
aHHHH!
0
위키 백과 시나리오에서 성공적인 패배
입력
40 23
########################################
#~ ~ ~~ ~ ~ ~~ ~ ~~ ~ ~ ~~ #
#~~ ~ ~~ ~ ~ ~~ ~ #
#~# ~~ ~~~~ ~ ~~~~ ~ ~~~ ~#
# ~ ~ ~ ~~ #~~ ~ #
#~~ ~~~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ #
# ~~ ~ ~ ~ ~~~ H ~ #~ #
# O~ ~ # ~~~ ~ ~ ~~ ~ ~ ~~ #
# ~ ~H~~ ~~ ~ # ~~ ~ #
# ~~ ~ ~~~ ~~ ~~~~ ~ ~#
#~ ~ ~~~ ~ ~ ~ ~ ~~ ~~#
# ~ # ~ ~~ ~~~ ~ ~ ~ # ~#
#~ ~ ~~ ~ ~ H ~~ ~~ ~ ~ ~~~ #
# ~ ~ ~ ~ ~ ~~~ ~ #
# ~~ ~ ~ ~~ ~ ~ ~ ~ ~ #
# ~~ ~ ~ ~ ~ ~~ #
#~ ~ # ~~~~ ~ ~~~H # ~ #
# ~ ~ ~ ~ ~ ~~ ~ #
# ~ ~ #~ ~ ~~ ~ ~ ~#
# ~~ ~ ~ ~~ ~ ~ #
# ~~~ ~ ~~ ~ ~ ~ ~ #
# ~ ~ ~ ~~ ~ ~ ~ #
########################################
RRRUWWWRRRURWWWWRDRRWWRDWWWWD
산출
8
나에 의해 제공, @bobbel에 의해 이동 및 출력, 나 자신과 @Allbeert에 의해 확증.
승리 기준
나는 이것이 골프 가능하다고 생각하므로 사람들이 불평하지 않으면 코드 골프 규칙을 따르게됩니다.
추가 크레딧
이미지를 닮은 이중 폭 문자로 재생 가능한 유니 코드 구현!