2011-08-13 13 views
-2

자바에서 지뢰 찾기를 디자인하려고합니다. 그리고 실제 창문 7 개를 분석하는 동안이 상황을 발견했습니다.지뢰 찾기 알고리즘

1 or 0 ?

(화살표가 가리키는) 피복 스퀘어, 1 일 수도 있고, 임의의 수 (빈 사각형)가 mayn't. 하지만 창문 7 지뢰 찾기에서는이 사각형이 1이됩니다.

가설 : 모든 광산은 항상 숫자로 둘러싸여 있다는 것을 알게되었습니다.

내 가설 가면 후 다른이 노출 된 사각형 1.

그리고 나는이 가설을 따른다면, 쉽게 될 것 지뢰 찾기위한 로직을 설계해야한다, 이동하지 않습니다. 이후

1 단계 : 무작위로 광산으로 사각형을 지정합니다 (2D 배열의 특정 (i, j) 요소를 -1로 지정).

2 단계 : 각 평방 수. 주변의 광산 수와 같습니다. (이 경우 가설은 사실이되었다.)

그리고 내 질문은,

  1. 노출 된 사각형 빈 사각형에 어떤 문제가있는 경우

    ?
  2. 그 가설은 지뢰 찾기의 규칙입니까?
  3. 내 코딩을 간단하게 구현하려면 을 구현해야한다는 가설을 따라야합니까?
  4. * 가설에 대한 규칙을 지닌 새로운 지뢰 찾기를 제안했다면 새로운 지뢰 찾기가 불안정하게 끝날까요? 그렇습니다.

* -> 내가 의도적으로 규칙을 위반하고 있지 않다, 나는 사용자에게 중복 힌트/키를 제거하려고합니다.

+0

이 질문은 방금 지뢰 찾기 규칙에 대한 설명이 필요하다는 것을 의미합니다. 그것은 프로그래밍 문제조차되지 않습니다. –

+0

이 질문은 프로그래밍 관련 질문이 아니기 때문에 주제와 관련이없는 것으로 보입니다. –

+0

화살표가있는이 위치에는 반드시 '1'이 있어야합니다. 그것이 '비어있는'경우 보드의 첫 번째 클릭은 그것을 "비어있는"것으로 밝혀지면, 그것을 둘러싼 모든 공간에 지뢰가 없다는 표시가됩니다. 또한 빈 공간을 클릭 할 때의 일반적인 동작은 모든 인접한 공간을 나타 내기위한 것입니다. 이 경우에는 발생하지 않습니다. –

답변

10

물론 뾰족한 사각형에는 숫자가 있습니다. (정확하게 하나의) 광산 사각형에 인접하므로 숫자가 1이됩니다. 빈 사각형은 0으로 표시됩니다.

+0

가설에 반하는 규칙을 지닌 새로운 지뢰 찾기를 제안했다면 새로운 지뢰 찾기가 불안정해질까요? –

+2

지뢰 찾기가 의도적으로 규칙을 어기면 더 이상 플레이 할 수 없습니다. 실감 여부에 관계없이 광산의 위치를 ​​알아내는 데 그 수는 필수적입니다. 정확하게 광산이 작동하는 방식으로 작동하기 때문입니다. – cHao

+0

@cHao 의도적으로 규칙을 어 기고있는 것은 아니며 사용자에게 중복 된 힌트/키를 제거하려고합니다. 여기에 화살표가있는 사각형은 중복 된 정보입니다. –

6

사각형을 번호를 매길 수 없으므로 숫자는 해당 사각형에 몇 개의 지뢰가 접촉하고 있는지 나타냅니다. 번호가없는 사각형은 "0"으로, 광산이 접촉하지 않습니다.

그렇습니다. 광산은 항상 번호가 매겨진 사각형으로 둘러싸여 야합니다.

0

숫자가 표시되지 않는 이유는 소해정의 채우기 알고리즘입니다.
값이 0 인 모든 필드를 표시합니다 (0은 비어 있음). 그리고 그것은 0이 아닌 값을 가진 이전에 계시 된 모든 필드를 보여줍니다.
구석의 필드에는 인접한 0 값 필드가 없으므로 자동으로 표시 할 수 없습니다. 당신이 마지막 행이 비어되고있는 10x11 필드가 원하는 경우

는 그것은 1.

를 전달,이 필드는 값 1로 밝혀 질 것입니다.

Windows 버전에서는 플래그가있는 기존 광산을 이미 표시 했으므로 Windows Minesweeper가 나머지 필드를 모두 표시 할 수 있습니다.

관련 문제