2011-09-30 6 views
1

자바에서 지뢰 찾기 프로그램을 연구 중입니다. 현장에서 폭탄을 배포하고 있으며 마우스 오른쪽 버튼 클릭에 응답하여 클릭 수 및 마우스 소유자에게 응답하는 액션 목록 작성자를 보유하고 있습니다. 또한 얼마나 많은 폭탄이 인접 해 있는지보고 클릭하여 게임에서와 같이 사각형에 숫자를 인쇄하는 각 사각형이 있습니다.minesweeper java

내가 이해할 수없는 부분은 번호가 비어 있거나 빈 칸이든 광장을 클릭 할 때 지뢰 찾기가 필드를 여는 방법뿐입니다. 이것이 어떻게 작동하는지 이해하도록 도와주세요.

+0

예를 들어 그리드가 어떻게 설정되었는지에 대한 몇 가지 코드를 게시하면 도움이 될 수 있습니다 . – talnicolas

답변

4

제가 이해할 수없는 부분은 번호가 비어 있거나 빈 칸이든 사각형을 클릭 할 때 지뢰 찾기가 필드를 여는 방법뿐입니다.

인접한 사각형 중 하나에 광산이있는 경우 주변에 광산 수가 표시된 숫자가 표시됩니다.

주변에 광산이없는 경우 비어 있습니다 (즉,해야 할 경우 숫자 0이 표시됨). 비어있는 경우 모든 이웃을 반복적으로 엽니 다 (예 : 공백 인 경우 모든 이웃과 이웃을 여는 등).

그리고 광산 인 경우 물론 잃게됩니다. 예 :

X 2 . . 
X 2 . . 
2 2 1 . 
1 X 1 . 

(X이 광산을 표시하자). . (공백)으로 표시하여 사용자가 사각형을 열 경우

, 자동으로 다음 그들에게 그들 모두와 숫자를 확장

- 2 . . 
- 2 . . 
- - 1 . 
- - 1 . 

(- 숨겨진 사각형을 표시하자).

+0

@ user541597 : null 사용자가 맞습니다. 빈 셀 (채굴 된 이웃이없는 셀) 옆에있는 경우 재귀 적으로 주변 셀을 열고 싶습니다. 이 모델 및 모델 뷰 클래스 구조의 예를 보려면 다음 코드를 참고하십시오. [minesweeper example code] (http://stackoverflow.com/questions/7006029/minesweeper-action-events/7016492#7016492) –

+0

그래서 만약 사각형을 클릭하면 인접한 사각형 중 어느 것도 나의 것이 정확하지 않은 경우에만 숫자 또는 빈 사각형 인 주변의 모든 사각형을 열 것입니까? 그리고 그곳에서 번호가 매겨진 상자가 아닌 빈 상자에만 재귀가 수행됩니까? – user541597

2

폭탄 인 경우 잃게됩니다.

숫자 인 경우 해당 숫자가 표시됩니다.

null squares, 즉 인접 폭탄이없는 경우 빈 칸이 표시되고 게임이 공개되면 빈 칸에있는 다른 모든 사각형이 공백으로 표시됩니다 (이 과정은 새로 생성 된 null 필드에 인접한 사각형은 적어도 하나의 폭탄에 인접한 자 (즉, 숫자가 있음)입니다.