Skip to content

Koreapanda4444/growing-cat

Repository files navigation

Growing Cat (고양이 키우기)

Growing Cat은 Python과 pygame으로 만든 고양이 육성 시뮬레이션 게임입니다. 고양이의 행복, 피로, 배고픔, 청결을 관리하고 미니게임과 하루 보상으로 코인을 모아 아이템과 진화를 진행합니다.

핵심 흐름

  1. 시작 화면에서 난이도와 성격을 고릅니다.
  2. 이름을 입력해 새 고양이를 만듭니다.
  3. 아침/밤을 넘기며 스탯을 관리합니다.
  4. 하루 보상과 미니게임으로 코인을 얻습니다.
  5. 상점에서 아이템을 사고 가방에서 사용합니다.
  6. 조건을 만족하면 고양이가 다음 단계로 진화합니다.
  7. 생존, 코인, 구매, 미니게임, 진화 조건으로 업적을 해금합니다.

스탯과 게임 오버

  • 배고픔 또는 피로가 100 이상이면 사망합니다.
  • 행복 또는 청결이 0 이하이면 가출합니다.
  • 난이도에 따라 스탯 압박, 회복량, 보상, 가격, 진화 비용, 미니게임 속도와 목표가 달라집니다.
  • 성격에 따라 일부 스탯 변화량이 달라집니다.

미니게임

  • 장애물 피하기
  • 메모리 게임
  • 고양이 따라가기
  • 레이저 포인터

각 미니게임은 하루에 한 번씩만 플레이할 수 있으며, 시간대가 넘어가면 사용 기록이 초기화됩니다. 선택한 난이도에 따라 제한 시간, 목표 점수, 장애물 속도, 기억해야 하는 길이도 함께 조정됩니다.

주요 파일

  • app.py: 앱 초기화, 메인 루프, 화면 전환, 저장 연동
  • cat.py: 고양이 상태 변화와 이미지 선택
  • state.py: 난이도, 성격, 스탯/코인 스케일링
  • items.py: 아이템 정의, 상점 id와 인벤토리 id 정규화
  • shop.py: 상점 UI
  • bag.py: 가방 UI
  • game.py: 미니게임 선택 화면
  • minigames/: 개별 미니게임 구현
  • evolution.py: 진화 조건과 단계
  • achievements.py, achievements_ui.py: 업적 로직과 UI
  • save.py, save_key_store.py: 서명된 저장 파일과 HMAC 키 관리
  • pg_utils.py: pygame 리소스 로딩 유틸
  • assets/: 이미지, 사운드, 폰트
  • tests/: 회귀 테스트

실행

pip install pygame
python app.py

테스트

python -B -m unittest discover -s tests -v

저장 데이터

저장 파일은 %APPDATA%/growing-cat/save.dat에 생성됩니다. 저장 파일은 HMAC으로 서명되며, Windows에서는 키를 DPAPI로 보호합니다. 저장 파일 무결성 검증에 실패하면 기존 저장을 덮어쓰지 않고 시작 화면으로 진입합니다.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages