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

김나현 - 자동차 경주 게임 #7

Open
wants to merge 15 commits into
base: nahyun0121
Choose a base branch
from

Conversation

nahyun0121
Copy link

@nahyun0121 nahyun0121 commented Mar 18, 2023

PR 타입

  • 기능 추가
  • 기능 삭제
  • 버그 수정
  • 의존성, 환경 변수, 빌드 관련 코드 업데이트

반영 브랜치

nahyun0121:nahyun0121 -> Dcom-KHU:nahyun0121

클래스

  • Car: 경주할 자동차의 이름, 위치 포함
  • CarStatusDTO: 모든 자동차 목록
  • RandomNumberGenerator: 자동차가 이동하기 위한 값 생성기
  • RacingGame: 게임 동안 필요한 로직들 담당 (시도 횟수대로 자동차 이동, 우승자 구하기, 차의 위치 찾기)
  • InputView: 자동차 이름과 시도 횟수 입력 처리
  • OutputView: 게임 진행 상황과 최종 우승자 출력 및 에러 메시지 출력 처리

기능

  1. 경주할 모든 자동차의 이름을 저장하는 기능 (+ 형식에 맞게 입력 받는 기능)
  2. 랜덤 숫자 생성 기능
  3. 자동차가 전달 받은 숫자(시도할 횟수를 입력받는 기능)에 따라 이동하는 기능
  4. 횟수별 실행 결과 출력 기능
  5. 자동차 간 위치를 비교해 우승자를 출력하는 기능
  6. 전달받은 횟수만큼 자동차를 이동하는 기능
  7. 에러 메시지 출력
  8. 잘못된 값 입력시 그부분부터 재입력

테스트 결과

image
자바를 제대로 하는 게 처음이라 참고해서 구현했는데 이러한 오류로 동작하지 않았습니다😂 왜 안 되는지 같이 찾아주시면 감사하겠습니다.. 그리고 더 추가하거나 수정해야 할 부분이 있는지 알고 싶습니다! 또 이렇게 세부적으로 클래스들을 나누는 게 좋은 방법인가에 대해서도 알고 싶습니다.

@rohsik2
Copy link
Collaborator

rohsik2 commented Mar 18, 2023

repeat은 java 11부터 지원하는데, 아마 저희가 8버전을 사용해서 그럴겁니다! 글자를 반복하고 싶으시면 for loops와 string builder를 사용하시는 방법이 있어요!


import camp.nextstep.edu.missionutils.Randoms;

public class RandomNumberGenerator implements NumberGenerator {
Copy link

@splguyjr splguyjr Mar 21, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NumberGenerator 인터페이스에서 make()를 선언하고
RandomNumberGenerator에서 이를 받아 정의하는 형태로 되어있는데
이러한 형태가 가지는 장점이 있을까요?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

지금 시점에서는 큰 장점이 없는 것 같지만, 다른 숫자생성기가 만들어져야 하는 상황과 같이 앞으로 다른 기능이 추가되어야 할 상황이 온다면, NumberGenerator 인터페이스를 통해 다중 상속이라든지 여러 숫자생성기 클래스에서 기본이 되는 틀이 된다든지 하는 점에서 이 인터페이스를 잘 활용할 수 있을 것 같습니다!

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

그리고 더 찾아보니 대규모 프로젝트 개발 시 일관되고 정형화된 개발을 위한 표준화가 가능하다는 장점도 있다고 합니다.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SOLID의 5가지 원칙중에서 OCP에 해당하는 것 같네요.
하나 배워갑니다!

Copy link

@splguyjr splguyjr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

InputView와 OutputView로 입력과 출력을 담당하는 깔끔한 구조가 보기 좋았어요

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.

3 participants