3주차까지의 작업 상황
- BGM 재생
- 플레이어 이름 input 받아 사용
- 매 턴 값을 받아 값에 연결된 액션을 실행
- 객체
- 포켓몬 -> 각각의 정보 저장
- 트레이너 -> 포켓몬, 소지금 등 트레이너 정보 저장
- 특정 문자열을 챔피언 코드로 지정해 플레이어와 챔피언 간 알맞은 포켓몬 풀 지정
4주차 작업 상황(~11/6)
- 포켓몬 교체 시스템 -> 다만, 아직은 능동 교체만 가능함. (수정) 포켓몬을 꺼낼 때 이전의 정보를 유지하도록.
- Call by Address 방식 전부 Call by Reference로 수정, Call by Value 사용해도 되는 Skill 객체들은 Call by Value 사용토록 수정.
- 스킬 정보는 외부의 csv파일에서 읽어들여 parse method 통해 Skill type 배열로서 저장됨.
- 선공과 후공을 판별하기 위해 fa와 la 객체에 포켓몬 객체를 지정하는 방식은 / 챔피언과 플레이어의 작동 매커니즘을 나눠 실행시키는 현재에 어울리지 않는 방식이라 삭제함.
- 그러나, 두 매커니즘을 통일시킬 수 있다면 fa, la에 지정하는 방식이 훨씬 깔끔할 것 같음.
추가
- 11/7 action method를 거치며 포인터가 제대로 전달되지 않아 교체 시 초기화되는 문제였으므로, pokemon은 Call by Address 형태로 사용하며 포켓몬 교체 함수를 action method 바깥으로 꺼내 사용.
5주차에 할 것
- 현재 포켓몬 기절 시 자동으로 교체 매커니즘 설계 -> 챔피언의 첫번째 포켓몬 격파 시 승리 판정 나는 것도 개선 가능함.
- 챔피언의 회복약 사용 알고리즘(각 포켓몬의 체력이 30% 미만일 경우 1회 한정, 총 6회 가능)
포켓몬 교체 시 이전 상태 기억하게
- 액션 관련 함수 통일하거나 축약할 수 있는 부분 정리
- enum 사용해 트레이너 타입 분류, 상황(배틀 내부) 분류, 포켓몬 속성 타입 분류.
고민중인 부분
- pp 구현 -> 전 기술 pp 소진 시 버둥거리기
- 상태변화 스킬 구현
- 일정 턴 후 종료되는 효과 구현
- 효과 시작 및 종료 안내 함수 통일
- 쓰러진 포켓몬 처리
- 속성 상성 구현
- enum 사용해 기술 기타사항(공격, 회복, 반동, 상태이상 등...) 구현