Growing Cat은 Python과 pygame으로 만든 고양이 육성 시뮬레이션 게임입니다. 고양이의 행복, 피로, 배고픔, 청결을 관리하고 미니게임과 하루 보상으로 코인을 모아 아이템과 진화를 진행합니다.
- 시작 화면에서 난이도와 성격을 고릅니다.
- 이름을 입력해 새 고양이를 만듭니다.
- 아침/밤을 넘기며 스탯을 관리합니다.
- 하루 보상과 미니게임으로 코인을 얻습니다.
- 상점에서 아이템을 사고 가방에서 사용합니다.
- 조건을 만족하면 고양이가 다음 단계로 진화합니다.
- 생존, 코인, 구매, 미니게임, 진화 조건으로 업적을 해금합니다.
- 배고픔 또는 피로가 100 이상이면 사망합니다.
- 행복 또는 청결이 0 이하이면 가출합니다.
- 난이도에 따라 스탯 압박, 회복량, 보상, 가격, 진화 비용, 미니게임 속도와 목표가 달라집니다.
- 성격에 따라 일부 스탯 변화량이 달라집니다.
- 장애물 피하기
- 메모리 게임
- 고양이 따라가기
- 레이저 포인터
각 미니게임은 하루에 한 번씩만 플레이할 수 있으며, 시간대가 넘어가면 사용 기록이 초기화됩니다. 선택한 난이도에 따라 제한 시간, 목표 점수, 장애물 속도, 기억해야 하는 길이도 함께 조정됩니다.
app.py: 앱 초기화, 메인 루프, 화면 전환, 저장 연동cat.py: 고양이 상태 변화와 이미지 선택state.py: 난이도, 성격, 스탯/코인 스케일링items.py: 아이템 정의, 상점 id와 인벤토리 id 정규화shop.py: 상점 UIbag.py: 가방 UIgame.py: 미니게임 선택 화면minigames/: 개별 미니게임 구현evolution.py: 진화 조건과 단계achievements.py,achievements_ui.py: 업적 로직과 UIsave.py,save_key_store.py: 서명된 저장 파일과 HMAC 키 관리pg_utils.py: pygame 리소스 로딩 유틸assets/: 이미지, 사운드, 폰트tests/: 회귀 테스트
pip install pygame
python app.pypython -B -m unittest discover -s tests -v저장 파일은 %APPDATA%/growing-cat/save.dat에 생성됩니다. 저장 파일은 HMAC으로 서명되며, Windows에서는 키를 DPAPI로 보호합니다. 저장 파일 무결성 검증에 실패하면 기존 저장을 덮어쓰지 않고 시작 화면으로 진입합니다.