4주차까지의 작업 상황
- BGM 재생
- 플레이어 이름 input 받아 사용 + 앞뒤 공백 trim method
- 매 턴 값을 받아 값에 연결된 액션을 실행
- 객체
- 포켓몬 -> 각각의 정보 저장
- 트레이너 -> 포켓몬, 소지금 등 트레이너 정보 저장
- 특정 문자열을 챔피언 코드로 지정해 플레이어와 챔피언 간 알맞은 포켓몬 풀 지정
- 포켓몬 교체 시스템
- 스킬 외부 파일에서 읽어들여 매칭
5주차 작업 상황(~11/15)
- enum 사용해 트레이너 타입 분류, 상황(배틀 내부) 분류, 포켓몬 속성 타입 분류, 포켓몬 상태이상 분류.
- enum 대신 enum class 사용해 enum 표기 간소화. -> enum class 사용하니 C3431 에러가 발생, 수정에 어려움을 겪다 C# 방식인 namespace + enum 사용함으로써 해결.
- 객체끼리의 관계 확실하게 재정의하고 관계 따라 타입 재작성. 특히 포인터와 주소값의 관계 제대로 이해하고 해당 파트는 모조리 수정.
교체를 하려면 이중 포인터를 쓰는 것만이 답일지도 몰라... -> 답이었음. 이중 포인터로 수정하니 정상 작동함.
- 3번 해결하니 현재 포켓몬 기절 시 자동으로 교체 매커니즘 정상 작동함. -> 챔피언의 첫번째 포켓몬 격파 시 승리 판정 나는 것도 개선함.
- 속성과 속성 상성, 그에 따른 대미지 변화 구현 완료함. 속성 상성은 4세대 타입 상성표를 참고함. enum과 이차원 배열을 연계해 배수 값을 찾아 리턴하는 방식 사용.
- mciSendString 이용해 sfx 추가.
- 챔피언의 회복약 사용 알고리즘(각 포켓몬의 체력이 15% 미만일 경우)
- 후공인 챔피언 기절 교체(피동 교체)시 스킬 사용하는 문제 해결하기.
6주차에 할 것
- 챔피언의 교체 알고리즘(현재 포켓몬의 체력이 낮을 경우, 상성 면에서 불리할 경우, 피동 교체할 경우)
- 챔피언 피동 교체 전 '(상대)는 (포켓몬 이름)을 내보내려 한다. 나도 교체할까?' 옵션
- 액션 관련 함수 통일하거나 축약할 수 있는 부분 정리
고민중인 부분
- pp 구현 -> 전 기술 pp 소진 시 버둥거리기
- 상태변화 스킬, 일정 턴 후 종료되는 효과 구현
- 효과 시작 및 종료 안내 함수 통일
- 포켓몬 정보 디스플레이