구분하지 않는 경우를 살펴보죠. 지뢰가 있는 닫힌 칸이 있다고 합시다. 우클릭을 1번 해서 물음표 칸이 됐고, 다시 1번 우클릭을 해서 깃발 칸이 됐습니다. 이제 1번 더 우클릭을 하면 닫힌 지뢰 칸으로 되돌아와야 하는데, 데이터에는 깃발 칸으로 표시되어 이 칸에 지뢰가 있는지 없는지를 기억하지 않습니다. 여기서 문제가 생기죠. 그래서 물음표 지뢰 칸과 깃발 지뢰 칸을 따로 만들어야 나중에 닫힌 지뢰 칸으로 되돌아올 수 있습니다.
지금까지 설명한 내용을 바탕으로 데이터 코드를 정리하면 다음과 같습니다.
표 14-1 칸 상태에 따른 데이터 코드
종류 |
코드 숫자 |
코드 이름 |
열린 칸 |
0~8 |
OPENED |
닫힌 칸(지뢰 X) |
-1 |
NORMAL |
물음표 칸(지뢰 X) |
-2 |
QUESTION |
깃발 칸(지뢰 X) |
-3 |
FLAG |
물음표 칸(지뢰 O) |
-4 |
QUESTION_MINE |
깃발 칸(지뢰 O) |
-5 |
FLAG_MINE |
닫힌 칸(지뢰 O) |
-6 |
MINE |
이 표를 구현하면 다음과 같습니다.