프로그램

C# 지뢰찾기. Minesweepe.

(주)CKBcorp., 2011. 12. 31. 00:42
반응형

C# 으로 지뢰찾기 게임을 만들었다. 


(엥? 화면에 바로 붙네?? )

계기는... 지뢰찾기 보니까, 만들 수 있을 거 같아서. -_-;

지뢰찾기의 규칙이랄까... 프로그래밍에 필요한 로직은 다음과 같다.

1. 사용자가 임의의 칸을 클릭하면, 해당 칸을 중심으로 사방 8칸 안에 지뢰가 있는지 확인한다.
2. 만일 지뢰가 있다면, 1~8까지의 수가 표시된다.
3. 지뢰가 없다면, 빈 칸이 표시된다.
 
핵심은 3번의, "빈 칸은 얼마나, 어디까지 표시되는가" 인데... 이것도 패턴이 보여서, 정리했다.


1. 시작할때 width * height 격자가 생성된다.
2. 지뢰가 random 으로 박힌다.
3. 사용자가 클릭하면, 클릭한 곳이 지뢰면, 터지고 게임 끝.
4. 지뢰가 아니면, 흰색으로 바뀌거나 숫자가 표시.
5. 9격자를 이용한다. 클릭이 중앙(5번).

123
456
789

사용자가 5번을 클릭했다고 가정.

6. 만일 1~9 안에 지뢰가 있을 경우, 사용자가 클릭한 5번은 1~9사이의 지뢰 갯수를 표시하고, 끝난다.
7. 1~9 안에 지뢰가 없을 경우, 1~9 가 중심이 되어 주위 8칸 안에 지뢰가 있는지 다시 찾는다. 즉,
7.1. 5번이 눌렸을 때, 지뢰가 없고,
7.2. 1~9번 사이에 지뢰가 없으면, 

123
456
789

->

12345
67890
ABCDE
FGHIJ
KLNMO

로 찾을 구역을 확장해서, 확장된 1234560AEFJKLNMO 구역에 지뢰가 있는지 찾는다.

7.4. 만일 7.3 의 1~O 구역 안에 지뢰가 있을 경우, 789BDGHI 구역에 지뢰의 갯수를 표시한다. 
7.5. 789BDGHI 구역에 아무것도 표시되지 않은 백색 구역이 있다면, 해당 백색 구역에서 7 ~ 7.5 를 반복한다. 


흠. 내가 생각을 정리하려고 기록한거라 좀 난해(?) 하긴 한데....상관없으려나??

잡설:
1. 지뢰찾기의 영문명은  Minesweepe. MineSeek 가 아니다.
2. 위키가 있는데 ( 
http://ko.wikipedia.org/wiki/%EC%A7%80%EB%A2%B0_%EC%B0%BE%EA%B8%B0 ) 지뢰찾기는 MS에서 만든 게임이 아니군.
3. 왜 이름이 mine seek 가 아니고 mind seek 냐 하면.... 오타다. -_-;; 
 

반응형