본문 바로가기

Java Programming

Quiz 2: 지뢰찾기 클리어!!

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
-_- 후.. 3일동안 잠을 설쳐가면서 고민한 지뢰찾기를 드디어 끝냈습니다.
사실 해결하고 나면 별거 아닌데 왜이렇게 해결하기까지가 짜증나고 고역스러운지 ㅠㅠ

일단 Quiz 2번은 링크를 해놓겠습니다 :)
RealStudy Team Blog : Quiz 2

음.. 지뢰찾기에서 가장 어려웠던 부분은 8방향 숫자 증가 시켜주는거 였습니다 -_-
3일 밤낮으로 생각하던 도중에 빡 삘받아서 오늘 해버렸습니다. 아래 소스코드 첨부합니다.

// 생성된 맵을 분석합니다.

@SuppressWarnings("static-access")

public void findMines(MineMapBuilder map) {

// h 맵의 높이, w 맵의 넓이, mH 8방향증가에서의 수직 이동, mW 8방향증가에서의 수평 이동

   for (int h = 0; h < analyzedMap.length; h++)

        for (int w = 0; w < analyzedMap[h].length; w++) {

            if (analyzedMap[h][w].equals("*"))

                for (int mH = -1; mH < 2; mH++)

                    for (int mW = -1; mW < 2; mW++)

                        try {

                            if (!analyzedMap[h + mH][w + mW].equals("*")) {

                            // 해당 배열의 값이 숫자가 아닌것이면 에러납니다.

                                Integer in = new Integer

                               (analyzedMap[h + mH][w + mW])

                               .parseInt(analyzedMap[h + mH][w+ mW]);

                               in++;                                                 

                                analyzedMap[h + mH][w + mW] = in.toString();

                            }

                        } // 음수 값으로 배열의 인덱스를 검색할시에는 그냥 넘어가게

                        catch (Exception e) {

                            continue;

                        }

                    }

       }

  }

총 3개의 클래스로 되어있으며
맵 생성, 맵 분석, 지뢰찾기데모를 돌리는 클래스로 구성이 되어있습니다.
소스코드 파일로 첨부했습니다~