Skip to content

mightang/ORBIA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ORBIA

Hexagonal Logic Puzzle Game


소개

ORBIA는 육각형 좌표계를 기반으로 한 SF 스타일의 논리 퍼즐 게임입니다.
육각 구조 특유의 시각적 정보 전달성, 간결한 규칙, 차분한 UI 디자인을 특징으로 하며
총 37개의 스테이지를 제공하는 캠페인 형식의 퍼즐 게임입니다.


특징

● 육각형 퍼즐 구조

  • 6방향 이웃을 기반으로 한 논리 추론
  • 사각형 기반 퍼즐보다 더 다양한 패턴 구성 가능

● 캠페인 기반 진행

  • r = 0 ~ 3까지의 육각형 링으로 구성된 37개의 스테이지
  • 튜토리얼 → 쉬움 → 보통 → 어려움까지 점진적 난이도

● 연속 오픈(0 영역)

  • 주변에 숫자가 없는 빈 타일을 열면 자동으로 확장 오픈
  • 직관적인 탐색 흐름 제공

● SF 기반 미니멀 UI

  • 파스텔·차가운 색감의 화면 구성
  • HUD와 타일 렌더링 모두 명료함에 집중

설치 & 실행 방법

1) Python 3.10 이상 설치

버전 확인:

python --version

2) pygame 설치

pip install pygame

3) 실행

python app.py

타이틀 화면 → 스테이지 선택 → 게임 플레이 순으로 진행됩니다.


조작 방법

입력 기능
좌클릭 타일 오픈
우클릭 깃발 표시
ESC 스테이지 선택으로 돌아가기
클리어 화면 Retry / Menu / Next 버튼 제공

스테이지 구성

게임은 육각형 링 구조로 구성되어 있으며, 스테이지 수는 다음과 같습니다:

r = 0  → 1 스테이지  
r = 1  → 6 스테이지  
r = 2  → 12 스테이지  
r = 3  → 18 스테이지  

총 37 스테이지

각 스테이지는 JSON 기반으로 구성됩니다.

예시:

{
  "id": "003",
  "name": "Sector 1-3",
  "grid": { "shape": "hex", "width": 10, "height": 10 },
  "blocked": [[-5, 0], [-4, 1]],
  "mines": [[0, -2], [1, -2]],
  "start_revealed": [[0, 0]]
}

프로젝트 구조

프로젝트 구조

TermProject/
├─ app.py
├─ settings.py
│
├─ animations/
│  ├─ init.py
│  ├─ game_hex_bg.py
│  ├─ scene_transition.py
│  ├─ stage_star_glow.py
│  ├─ tile_hover.py
│  ├─ tile_mistake.py
│  ├─ tile_reveal.py
│  └─ title_space.py
│
├─ assets/
│  ├─ fonts/
│  │  └─ PretendardVariable.ttf
│  │
│  ├─ images/
│  │  ├─ game_title.png
│  │  ├─ orbia_icon.png
│  │  │
│  │  ├─ README/
│  │  │  ├─ gameplay.png
│  │  │  ├─ levelselect.png
│  │  │  └─ title.png
│  │  │
│  │  └─ tutorial/
│  │     ├─ tuto_01.png
│  │     ├─ tuto_02.png
│  │     ├─ tuto_03.png
│  │     └─ tuto_04.png
│  │
│  └─ sounds/
│     ├─ advance_1.ogg
│     ├─ advance_2.ogg
│     ├─ advance_3.ogg
│     ├─ basic.ogg
│     ├─ intermediate_1.ogg
│     ├─ intermediate_2.ogg
│     ├─ main.ogg
│     ├─ tile_click_correct.wav
│     ├─ tile_click_false.wav
│     ├─ tile_hover.wav
│     └─ ui_click.wav
│
├─ core/
│  ├─ board.py
│  ├─ grid.py
│  ├─ hexmath.py
│  ├─ render.py
│  ├─ scenes.py
│  └─ ui.py
│
├─ saves/
│
└─ stages/
   ├─ tutorial/
   │  └─ 001.json
   │
   ├─ basic/
   │  ├─ 002.json
   │  ├─ 003.json
   │  ├─ 004.json
   │  ├─ 005.json
   │  ├─ 006.json
   │  └─ 007.json
   │
   ├─ intermediate/
   │  ├─ 008.json
   │  ├─ 009.json
   │  ├─ 010.json
   │  ├─ 011.json
   │  ├─ 012.json
   │  ├─ 013.json
   │  ├─ 014.json
   │  ├─ 015.json
   │  ├─ 016.json
   │  ├─ 017.json
   │  ├─ 018.json
   │  └─ 019.json
   │
   └─ advance/
      ├─ 020.json
      ├─ 021.json
      ├─ 022.json
      ├─ 023.json
      ├─ 024.json
      ├─ 025.json
      ├─ 026.json
      ├─ 027.json
      ├─ 028.json
      ├─ 029.json
      ├─ 030.json
      ├─ 031.json
      ├─ 032.json
      ├─ 033.json
      ├─ 034.json
      ├─ 035.json
      ├─ 036.json
      └─ 037.json
~~~

게임 플레이 화면


개발 내용 요약

  • Python + pygame 기반
  • 육각형 좌표계(axial/cube) 구현
  • 보드 상태 및 숫자 단서 계산
  • 빈 영역 연속 오픈(플러드필)
  • 스테이지 JSON 로딩 및 관리
  • 타이틀 화면 / 스테이지 선택 / 플레이 화면 구현

라이선스

[육각형 좌표계 참고 자료]
(https://www.redblobgames.com/grids/hexagons/)

[Font]
(https://noonnu.cc/font_page/694)

[배경 음악]
(https://www.youtube.com/watch?v=7OQx3dMjBMQ&list=RDQMVI8r1aHT3yA&index=10)
(https://www.youtube.com/watch?v=6RO7K4W-c9g&list=RDQMVI8r1aHT3yA&index=5)
(https://www.youtube.com/watch?v=XMn4DA7UxFk&list=RDQMudcOVFF92x0&index=7)
(https://www.youtube.com/watch?v=YUE2LoPlBs0&list=PLuqZTQ_5gsprXxxcIR8KeohOY4lM82m-Q&index=13)
(https://www.youtube.com/watch?v=EVHet8oqWBo&list=PLuqZTQ_5gsprXxxcIR8KeohOY4lM82m-Q&index=19)
(https://www.youtube.com/watch?v=sUXboASMRkc&list=PLuqZTQ_5gsprXxxcIR8KeohOY4lM82m-Q&index=42)

[Click SFX]
(https://mixkit.co/free-sound-effects/)

About

pygame 라이브러리를 이용한 지뢰찾기 게임

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages