⚡ 포켓몬 배틀
📋 프로젝트 개요
클래스를 활용하여 포켓몬 캐릭터와 배틀 기능을 구현해보세요. 객체지향 프로그래밍의 핵심 개념을 재미있는 게임을 통해 익힐 수 있습니다!
🎯 학습 목표
- 클래스 설계와 구현
- 객체 간 상호작용 구현
- 메서드를 활용한 기능 구현
- 특수 메서드 활용
🚀 기본 기능
핵심 요구사항
포켓몬 클래스와 간단한 배틀 구현
-
Pokemon 클래스 설계
- 이름, HP, 공격력, 타입 속성
- 공격하기 메서드
- HP 회복 메서드
-
포켓몬 생성 및 관리
- 새 포켓몬 등록
- 포켓몬 목록 보기
- 포켓몬 상태 확인
-
간단한 배틀
- 두 포켓몬 선택
- 턴제 공격
- 승패 판정
💻 출력 예시
=== 포켓몬 월드 ===
1. 포켓몬 등록
2. 포켓몬 목록
3. 포켓몬 배틀
4. 종료
선택: 1
=== 포켓몬 등록 ===
이름: 피카츄
HP: 100
공격력: 40
타입: 전기
⚡ 피카츄가 등록되었습니다!
선택: 3
=== 포켓몬 배틀 ===
첫 번째 포켓몬: 피카츄 (HP: 100)
두 번째 포켓몬: 파이리 (HP: 90)
🥊 배틀 시작!
턴 1: 피카츄의 공격!
⚡ 피카츄가 파이리를 공격했다!
💥 40의 데미지!
파이리 HP: 50/90
턴 2: 파이리의 공격!
🔥 파이리가 피카츄를 공격했다!
💥 35의 데미지!
피카츄 HP: 65/100
...
🏆 피카츄 승리!
💡 구현 힌트
- Pokemon 클래스에
__str__
메서드를 구현해보세요 - HP가 0 이하가 되면 배틀이 끝나도록 하세요
- 타입에 따른 이모지를 표시해보세요
🎨 추가 기능 1: 스킬 추가
요구사항
포켓몬이 여러 스킬을 사용할 수 있도록 스킬 시스템을 추가합니다.
- Skill 클래스: 스킬 이름, 데미지, 설명
- 스킬 목록: 포켓몬마다 2-3개의 스킬 보유
- 스킬 선택: 배틀 시 사용할 스킬 선택
스킬 사용 예시
피카츄의 턴!
사용할 스킬을 선택하세요:
1. 전광석화 (데미지: 50)
2. 몸통박치기 (데미지: 30)
선택: 1
⚡ 피카츄가 전광석화를 사용했다!
💥 파이리에게 50의 데미지!
파이리 HP: 40/90
💡 추가 기능 2: 타입 상성
요구사항
포켓몬 타입 간의 상성을 구현하여 더 전략적인 배틀을 만듭니다.
- 타입 상성: 불꽃 > 풀, 물 > 불꽃, 풀 > 물, 전기 > 물
- 데미지 보정: 효과적일 때 1.5배, 비효과적일 때 0.5배
- 상성 메시지: 효과에 따른 메시지 출력
타입 상성 예시
⚡ 피카츄가 전광석화를 사용했다!
🎯 효과가 굉장했다! (전기 > 물)
💥 파이리에게 75의 데미지! (50 × 1.5)
파이리 HP: 15/90
🔍 추가 기능 3: 경험치와 레벨업
요구사항
배틀을 통해 경험치를 얻고 레벨업하는 시스템을 추가합니다.
- 경험치 획득: 배틀 승리 시 경험치 100 획득
- 레벨업: 경험치 100마다 레벨 1 증가
- 스탯 증가: 레벨업 시 HP와 공격력 증가
레벨업 예시
🎉 피카츄가 레벨업했다!
레벨: 2 → 3
HP: 100 → 110
공격력: 40 → 45
✅ 프로젝트 완성 체크리스트
✅ 포켓몬 배틀 완성 체크리스트
💡 학습 포인트
이 프로젝트를 통해 다음을 학습할 수 있습니다:
- 클래스 설계: 게임 캐릭터를 클래스로 모델링
- 객체 상호작용: 포켓몬끼리 공격하고 데미지 받기
- 메서드 활용: 기능별로 메서드 분리하여 구현
- 특수 메서드:
__str__
메서드로 객체 표현 - 게임 로직: 턴제 시스템과 승패 판정
단계별로 구현하면서 객체지향 프로그래밍의 핵심을 자연스럽게 익힐 수 있습니다! 🚀
Last updated on