자바 Swing으로 개발한 클래식 지뢰찾기 게임입니다.
- 난이도 설정: 초급, 중급, 고급 난이도 선택 가능
- 커스텀 게임: 사용자가 직접 보드 크기와 지뢰 개수 설정 가능
- 게임 타이머: 게임 진행 시간 실시간 표시
- 개인 기록 관리: 최고 기록 저장 및 관리
- 랭킹 시스템: 난이도별 상위 10개 기록 보관
- 현대적인 UI: FlatLaf 테마 적용으로 깔끔한 인터페이스
- 언어: Java
- GUI 프레임워크: Swing
- UI 테마: FlatLaf
- 빌드 도구: Gradle
- Java 8 이상
- Gradle (빌드 시)
# 프로젝트 빌드
./gradlew build
# 프로젝트 실행
./gradlew run# JAR 파일 생성
./gradlew jar
# JAR 파일 실행
java -jar build/libs/new_mineSweeper.jar- 게임 시작: 난이도를 선택하고 새 게임을 시작합니다
- 좌클릭: 셀을 열기
- 우클릭: 깃발 표시/해제
- 숫자의 의미: 주변 8칸에 있는 지뢰의 개수
- 승리 조건: 모든 지뢰가 아닌 셀을 열면 승리
- 패배 조건: 지뢰를 클릭하면 게임 종료
new_mineSweeper/
├── src/
│ └── main/
│ ├── java/
│ │ ├── MineSweeperMain.java # 메인 클래스
│ │ ├── GameManager.java # 게임 관리
│ │ ├── Cell.java # 셀 데이터 관리
│ │ ├── MineButton.java # 지뢰 버튼 UI
│ │ ├── ButtonsPanel.java # 게임 보드 패널
│ │ ├── InitSetPanel.java # 초기 설정 패널
│ │ ├── StatusPanel.java # 상태바 패널
│ │ ├── GameTimer.java # 타이머 기능
│ │ ├── GameRecord.java # 기록 데이터
│ │ ├── PersonalRecordIO.java # 기록 저장/불러오기
│ │ ├── MyRanking.java # 개인 랭킹 시스템
│ │ ├── WorldRanking.java # 월드 랭킹 데이터
│ │ └── WorldRankingGUI.java # 월드 랭킹 UI
│ └── resources/
│ ├── fonts/ # 폰트 파일
│ └── images/ # 이미지 리소스
├── rankings/ # 랭킹 데이터 저장 폴더
├── build.gradle # Gradle 설정 파일
└── README.md # 프로젝트 설명서
| 난이도 | 크기 | 지뢰 개수 |
|---|---|---|
| 초급 | 9×9 | 10 |
| 중급 | 16×16 | 40 |
| 고급 | 30×16 | 99 |
| 커스텀 | 사용자 설정 | 사용자 설정 |
이 프로젝트는 개인 학습 목적으로 제작되었습니다.
- GitHub: @jhpark-coder
버그 리포트나 기능 제안은 이슈로 등록해주세요.