이 도전의 목표 는 주어진 과정을 완료하는 데 필요한 최소의 파업을 반환 하는 프로그램이나 기능 을 작성 하는 것 입니다.
입력
- 코스의 레이아웃은 원하는 방식과 형식으로 전달할 수 있습니다. (콘솔에서 읽기, 입력 매개 변수로 전달, 파일 또는 기타 여러 줄 문자열, 문자열 배열, 2 차원 문자 / 바이트 배열에서 읽음)
- 공의 시작 위치와 구멍도 입력으로 전달할 수 있으며 입력에서 파싱 할 필요가 없습니다. 테스트 사례에서는 실제 위치와 혼동되지 않도록 코스에 포함되어 있습니다.
- 입력 문자가 여전히 고유 문자 (예 : 인쇄 가능한 ASCII 문자)로 인식되는 한 입력 문자를 다른 것으로 다시 맵핑 할 수 있습니다.
산출
- 프로그램은 현명한 형식 (결과를 설명하는 문자열, 정수, 부동 또는 하이쿠)으로 입력으로 전달 된 코스에 대해 최저 점수 (홀에 도달하는 데 필요한 최소 스트라이크)를 반환해야합니다.
- 강좌를 이길 수없는 경우 귀국
-1
(또는 선택 가능한 다른 강박 한 가치는 이길 수없는 강좌에 대해서는 반환되지 않음).
예:
이 예제에서 위치는 0 기반, X / Y, 왼쪽에서 오른쪽으로, 위에서 아래로 표기되지만 결과는 형식에 독립적이므로 원하는 형식을 사용할 수 있습니다.
입력:
###########
# ....#
# ...#
# ~ . #
# ~~~ . #
# ~~~~ #
# ~~~~ #
# ~~~~ o #
# ~~~~ #
#@~~~~ #
###########
Ball (Start-Position): 1/9
Hole (End-Position): 8/7
산출:
8
규칙과 필드
이 과정은 다음과 같은 필드로 구성 될 수 있습니다.
'@'
공 -코스 시작'o'
구멍 -코스의 목표'#'
벽 -벽에 닿으면 공이 멈 춥니 다'~'
물 -피해야합니다'.'
모래 -공이 모래 위에서 즉시 멈 춥니 다' '
얼음 -공이 무언가에 닿을 때까지 계속 미끄러집니다.
게임의 기본 규칙 및 제한 사항 :
- 공은 대각선으로, 왼쪽, 오른쪽, 위아래로 움직일 수 없습니다.
- 공은 물 앞에서, 벽 앞에서, 모래 위에서 그리고 구멍에서 멈추지 않습니다.
- 물 속으로의 샷이 유효하지 않거나 불가능합니다
- 공은 얼음 위에있는 것처럼 건너 뛰지 않고 구멍에 남아있게됩니다.
- 코스는 항상 직사각형입니다.
- 이 코스는 항상 물이나 벽으로 둘러싸여 있습니다 (경계 확인 필요 없음).
- 항상 정확히 하나의 공과 하나의 구멍이 있습니다.
- 모든 코스가 이길 수있는 것은 아닙니다.
- 동일한 (가장 낮은) 점수를 얻는 여러 경로가있을 수 있습니다.
허점과 승리 조건
- 표준 허점 은 금지되어 있습니다
- 프로그램은 종료되어야합니다
- 추가 규칙을 구성 할 수 없습니다 (공을 너무 세게 치면 물 위로 건너 뛰거나 벽에서 튀어 나오거나 모래밭 위로 뛰어 오름, 모서리 주위의 곡선 등)
- 이것은 code-golf 이므로 문자 수가 가장 적은 솔루션이 승리합니다.
- 솔루션은 제공된 모든 테스트 사례를 처리 할 수 있어야합니다. 사용 된 언어의 제한으로 인해 이것이 불가능한 경우 답변에이를 지정하십시오.
테스트 사례
코스 # 1 (2 파업)
####
# @#
#o~#
####
코스 # 2 (불가능)
#####
#@ #
# o #
# #
#####
코스 # 3 (3 회)
~~~
~@~
~.~
~ ~
~ ~
~ ~
~ ~
~.~
~o~
~~~
코스 # 4 (2 파업)
#########
#~~~~~~~#
#~~~@~~~#
## . ##
#~ ~ ~ ~#
#~. o .~#
#~~~ ~~~#
#~~~~~~~#
#########
코스 # 5 (불가능)
~~~~~~~
~... ~
~.@.~.~
~... ~
~ ~ ~.~
~ . .o~
~~~~~~~
더 많은 테스트 사례 :
1
관련 : 하나 , 둘 .
—
AdmBorkBork
2 차원 바이트 배열을 입력으로 사용하는 경우 기호에 대해 사용자 정의 매핑을 사용할 수 있습니까?
—
Arnauld
@Arnauld 여기에 관한 일반적인 합의가 무엇인지 확실하지 않지만 입력을 여전히 인식 할 수 있다면 괜찮습니다. 입력 섹션을 업데이트했습니다 .
—
Manfred Radlwimmer
목적지를 직접 입력하면 목적지가 '모래'기호가 될 수 있습니까?
—
l4m2
@ l4m2 물론, 다른 모든 규칙과 일관되게 유지됩니다.
—
Manfred Radlwimmer