우리는 이미 지뢰 찾기 필드를 생성 했지만 PCG가 폭발하기 전에 누군가가 생성 된 광산을 청소해야합니다!
당신의 임무는 약간의 수정 된 “Working Minesweeper”솔루션 솔루션 과 호환되는 Minesweeper Solver를 작성하는 것입니다 (작업은 공백으로 구분되어 더 큰 필드를 허용합니다).
입력 : 지뢰 찾기 필드, 공백으로 구분 된 필드. 첫 번째 줄은 총 광산 수를 나타냅니다.
x
: 손길이 닿지 않은!
: 깃발- 숫자 : 해당 필드 주변의 광산 수
예:
10
0 0 1 x x x x x
0 0 2 x x x x x
0 0 2 ! x x x x
0 0 1 2 x x x x
0 0 0 1 x x x x
1 1 0 2 x x x x
x 1 0 2 x x x x
1 1 0 1 x x x x
출력 : 형식의 다음 단계 action row column
(0에서 시작)
유효한 조치 :
0
: 열어 봐1
: 깃발을 배치
예:
0 1 2
규칙 :
- 단일 필드를 입력 (STDIN 또는 명령 행 인수)으로 사용하고 단일 조치 (STDOUT)를 출력하는 완전한 프로그램을 작성합니다. 따라서를 제외하고는 상태를 저장할 수 없습니다
!
. - 당신의 선택은 생존을위한 최고의 가능성을 따라야합니다. (즉, 100 % 안전한 이동이 있으면 가져 가십시오)
- 이것은 코드 골프입니다 . 가장 짧은 솔루션 (UTF-8 바이트)이 이깁니다.
테스트 :
이 테스트는 일반적인 명확한 상황을 테스트하는 목적으로 사용됩니다. 프로그램은 모든 테스트 필드에서 작동해야합니다.
에서:
4
x x x x
1 2 x x
0 1 2 x
0 0 1 x
아웃 (이들 중 하나) :
1 1 2
0 0 2
0 1 3
에서:
2
x x x
1 ! x
1 1 x
아웃 (이들 중 하나) :
0 0 0
0 0 1
0 1 2
0 2 2
1 0 2
에서:
10
x x x x x x x x
1 3 3 x x x x x
0 1 ! 3 3 4 x x
0 2 3 ! 2 3 x x
0 1 ! 2 2 ! x x
아웃 (이들 중 하나) :
1 1 5
1 0 2
에서:
2
x x x
2 3 1
! 1 0
아웃 (이들 중 하나) :
0 0 1
1 0 0
1 0 2
좋은! 1) 테스트를 위해 누군가가 테스트 하네스를 작성해야 할 것입니다. 필드가 주어지면 각 단계를 인쇄하고 프로그램의 승리 여부를 인쇄합니다. 이 프로그램은 모호함없이지도에서 승리해야합니다. 2) 누구나 깃발 행동을 사용할지 궁금합니다. 절대 필요하지 않은 것 같습니다.
—
Claudiu
첫 번째 테스트. 왜 이동 할 수 있습니다
—
FDinoff
0 0 2
또는 0 1 3
. 그 중 하나가 어떻게 안전한지 알 수 없습니다. (저는 지뢰 찾기에 충분하지 않아야합니다 ...)
아마도
—
비전
F
나 P
외모 더 플래그에 비해 !
:
@JonathanVanMatre이 필드는 빈칸이지만 첫 번째 클릭 후 지뢰가 배치되므로 첫 오프닝이 광산이 아닌 것으로 보장됩니다. :)
—
TimWolla
재미있는 사실 : 이용 가능한 보드 수는 한정되어 있습니다 (적어도 XP 버전에서는 경쟁 현장의 표준 보드 임). 첫 번째 지점을 클릭하면 지뢰를 클릭하지 않고 이미 어떤 보드를 사용할지 결정되지 않은 것입니다.
—
undergroundmonorail