콘솔 텍스트 머드게임을 만들 준비

shockwave·2024년 8월 21일

TIL

목록 보기
15/49

오늘은 콘솔을 이용한 텍스트 머드게임에 기능을 구현하는 과제를 받았다.
일주일간(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이 되거나 도망 시 스테이지가 스킵되거나 클리어되거나 혹은 로비로 이동되는 것을 구현해보려고 한다.
그리고 시간이 여유가 정말 된다면 스킬도 여러개 만들어보려고 한다.

profile
생각을 많이. 입은 무겁게. 심장은 항상 열심히 뛰는 사람이 되자.

0개의 댓글