Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[보스 몬스터 잡기] 김선호 미션 제출합니다. #22

Open
wants to merge 18 commits into
base: SHKim55
Choose a base branch
from

Conversation

SHKim55
Copy link

@SHKim55 SHKim55 commented Feb 12, 2024

보스 몬스터 잡기 미션

코드 설명

  • LayeredArchitecture 적용 - Controller / Service / Domain (+ exception)
  • 게임 시작 전 기본 정보를 입력하는 부분을 Controller, 실제로 게임이 진행되는 부분을 Service, 그 외 부분을 Domain으로 구분함
  • 공격 시 발생하는 데미지는 Player/Boss 객체의 currentHp 필드의 값을 변경하는 것으로 구현함
  • 게임 진행 상황에 따라 바뀌는 몬스터의 이미지는 printFigure() 멤버 메서드의 매개변수 값을 이용하여 상황에 맞게 출력함
  • Runtime에서 발생할 수 있는 여러 가지 예외를 exception 패키지 안에 들어있는 exception class들을 활용하여 핸들링 함
  • 초기 데이터 입력 과정에서 잘못된 입력이 들어온 경우 try~catch + while 반복문을 통해 처리함

질문사항

  • 제가 생각했을 때는 게임에서 가장 메인 로직이 되어야 할 부분을 Service로 두어야 한다고 생각하는데 아무래도 사용자와 지속적으로 상호작용하는 프로그램이다보니 일단은 게임 진행 도중에 user input을 받는 부분도 service에 포함시켰습니다. 그럼에도 입력 로직은 controller로 분리하는 것이 더 좋은 지 궁금합니다.
  • 현재 구현한 데미지 적용 메서드는 setter와 비슷한 기능으로 동작한다고 생각합니다. setter 사용을 피하기 위해 hp, mp 필드가 Wrapper class로 정의되어 데미지를 받을때마다 새로운 Wrapper 객체로 대체하는 방법이 더 좋은 지 궁금합니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant