C++ 포켓몬 5주차

와다닥·2021년 11월 14일
0

(완) [C++] cpp푸키몬

목록 보기
3/6
post-custom-banner

4주차까지의 작업 상황

  • BGM 재생
  • 플레이어 이름 input 받아 사용 + 앞뒤 공백 trim method
  • 매 턴 값을 받아 값에 연결된 액션을 실행
  • 객체
    • 포켓몬 -> 각각의 정보 저장
    • 트레이너 -> 포켓몬, 소지금 등 트레이너 정보 저장
  • 특정 문자열을 챔피언 코드로 지정해 플레이어와 챔피언 간 알맞은 포켓몬 풀 지정
  • 포켓몬 교체 시스템
    • 능동 교체만 가능
  • 스킬 외부 파일에서 읽어들여 매칭

5주차 작업 상황(~11/15)

  1. enum 사용해 트레이너 타입 분류, 상황(배틀 내부) 분류, 포켓몬 속성 타입 분류, 포켓몬 상태이상 분류.
  2. enum 대신 enum class 사용해 enum 표기 간소화. -> enum class 사용하니 C3431 에러가 발생, 수정에 어려움을 겪다 C# 방식인 namespace + enum 사용함으로써 해결.
  3. 객체끼리의 관계 확실하게 재정의하고 관계 따라 타입 재작성. 특히 포인터와 주소값의 관계 제대로 이해하고 해당 파트는 모조리 수정.
    교체를 하려면 이중 포인터를 쓰는 것만이 답일지도 몰라... -> 답이었음. 이중 포인터로 수정하니 정상 작동함.
  4. 3번 해결하니 현재 포켓몬 기절 시 자동으로 교체 매커니즘 정상 작동함. -> 챔피언의 첫번째 포켓몬 격파 시 승리 판정 나는 것도 개선함.
  5. 속성과 속성 상성, 그에 따른 대미지 변화 구현 완료함. 속성 상성은 4세대 타입 상성표를 참고함. enum과 이차원 배열을 연계해 배수 값을 찾아 리턴하는 방식 사용.
  6. mciSendString 이용해 sfx 추가.
  7. 챔피언의 회복약 사용 알고리즘(각 포켓몬의 체력이 15% 미만일 경우)
  8. 후공인 챔피언 기절 교체(피동 교체)시 스킬 사용하는 문제 해결하기.

6주차에 할 것

  1. 챔피언의 교체 알고리즘(현재 포켓몬의 체력이 낮을 경우, 상성 면에서 불리할 경우, 피동 교체할 경우)
  2. 챔피언 피동 교체 전 '(상대)는 (포켓몬 이름)을 내보내려 한다. 나도 교체할까?' 옵션
  3. 액션 관련 함수 통일하거나 축약할 수 있는 부분 정리

고민중인 부분

  1. pp 구현 -> 전 기술 pp 소진 시 버둥거리기
  2. 상태변화 스킬, 일정 턴 후 종료되는 효과 구현
  3. 효과 시작 및 종료 안내 함수 통일
  4. 포켓몬 정보 디스플레이
profile
I can't die I'm ALL IN
post-custom-banner

0개의 댓글