오늘은 콘솔을 이용한 텍스트 머드게임에 기능을 구현하는 과제를 받았다.
일주일간(8.29까지) 게임의 기능을 구현하게 될 텐데 어떤식으로 만들어야할 지에 대해 설명을 들었고 정리해보았다.
알면 좋은것)
Promise / 동기-비동기 / aysnc await
해야할 것
도입 - 1번 (게임 시작)
필수요소 - 1. 액션( 공격 / 도망 )
2. 플레이어 스탯 (공격력, 체력 등)
3. 플레이어 공격, 피격 / 몬스터 공격, 피격
4. 스테이지 클리어시 상호작용 (체력회복, 공격력증가 등)
5. 스테이지 진행상황에 따른 환경요소 (몬스터 체력 증가 등)
필수기능 구현하기
A. switch 조건에 따른 유저의 행동 로직 처리 (공격 / 특수행동 / 도망)
B. while 반복문 사용시 종료 조건이 무조건 있어야함
1. 스테이지 클리어 및 게임 종료 조건
(플레이어 체력 0 또는 몬스터 사망 또는 도망치기 성공)
2. 몬스터와의 전투 종료 조건
(도망치기 or 몬스터 체력 또는 플레이어 체력 0 이하)
3. Math.random() 메서드를 통해 랜덤한 숫자를 얻을 수 있다.
4. 플레이어 공격은 선택에 의해, 몬스터는 자동으로 공격처리
(플레이어 선택지 또는 몬스터의 공격패턴 랜덤요소 담기 가능)
5. 함수 호출 순서에 따라 각 변수, 객체들을 관리하는 것이 중요하다.
추가적으로 구현하면 좋을 것
A. 확률 로직 적용
B. 복잡한 행동 패턴 구현
목표요소 - 랜덤 / 세이브 불가능(세이브 만들 필요없음) / 턴제
2주만에 제대로 머리 지끈해지는 날이었다.
생각보다 코드는 몇 줄 못 친 것 같은데 고민을 많이 한 것 같다
오늘 구현한 것)
플레이어/몬스터
- 스탯 구현 ( HP, 공격력, 방어력, 명중률, 회피율, 속도, 상태 )
- 도망 구현 ( 상태 -> 도망시 false, 도망 중이 아닐시 true)
배틀 부분 switch문 => 공격, 도망, 게임 강제종료, 오류입력시...(제일어려움 아직 못 함)
공격/피격 상호작용 및 player/monster 클래스 내 getter setter 정리
내일은 몬스터나 플레이어의 체력이 0이 되거나 도망 시 스테이지가 스킵되거나 클리어되거나 혹은 로비로 이동되는 것을 구현해보려고 한다.
그리고 시간이 여유가 정말 된다면 스킬도 여러개 만들어보려고 한다.