반응형
[문제]
📌 요구사항
1. 클래스 설계
- 최상위 클래스: Item
- 파생 클래스들:
- Equip (장착 아이템)
- Weapon: LongSword, ShortSword (공격력 속성)
- Armor: Upper, Lower, Glove, Shoes, Shield (방어력 속성)
- Consumable (소모품 아이템)
- HpPotion, MpPotion
- QuestItem (퀘스트 아이템)
- DragonTear
- Equip (장착 아이템)
2. Inventory 클래스
- 사용할 컨테이너: std::vector, std::list, std::map 중 택 1
- 포함 기능:
- addItem(Item* item) – 아이템 추가
- removeItem(const std::string& itemName) – 아이템 제거
- useItem(const std::string& itemName) – 소모품 사용
- equipItem(const std::string& itemName) – 장착 아이템 장착
- displayInventory() – 인벤토리 출력
3. Player 클래스
- 기본 스탯:
- name, hp=100, mp=100, attack=10, defense=5
- 포함 기능:
- useItem(Inventory&, const std::string& itemName)
- equipItem(Inventory&, const std::string& itemName)
- showStats()
- 턴마다: hp/mp 3씩 감소, 소모품 사용 시 회복
🛠 구현 목표
- 클래스 정의
- Item을 기반으로 Equip, Consumable, QuestItem 구현
- 각 아이템 고유 속성 정의
- Inventory 관리
- 아이템의 추가/제거/사용/장착을 구현한 인벤토리 시스템 구현
- 게임 루프
- 매 턴마다:
- 랜덤 아이템 생성
- 플레이어 행동 선택: 사용 / 장착 / 인벤토리 확인
- 스탯 및 인벤토리 출력
- 퀘스트 아이템 DragonTear을 10개 획득하면 게임 종료
- 매 턴마다:
[구현]
[메인]

[턴 넘기기]

[아이템 사용]


[장비 사용]


[아이템 제거]

반응형
'C++' 카테고리의 다른 글
| 2. 참조 vs 포인터 (0) | 2025.01.30 |
|---|---|
| (C++) 1. 헤더파일 (0) | 2025.01.26 |