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

Java baseball game 한대희 #2

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

hdh4952
Copy link

@hdh4952 hdh4952 commented Sep 23, 2022

껍데기만 멀쩡한 코드 같네요..
공부해서 열심히 고쳐보겠습니다

@hdh4952 hdh4952 changed the title feat: game 구현 Java baseball game 한대희 Sep 23, 2022
@shkisme shkisme self-requested a review September 23, 2022 07:29
Copy link
Contributor

@shkisme shkisme left a comment

Choose a reason for hiding this comment

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

자바 프로그래밍 처음인거 맞나요? 처음이신데 굉장히 잘 하셨네요!!👍
특히 로직은 굉장히 잘 짜시는 것 같습니다. 클래스로 분리하는 부분은 좀 연습해보시면 실력이 금방 느실 것 같네요👍👍
리뷰 읽어보시고 수정사항 반영해주세요~!

System.exit(0);
}


Copy link
Contributor

Choose a reason for hiding this comment

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

소개해드렸던 formatter를 사용해보시는게 좋을 것 같습니다! 포메터 적용을 하지 않으면, 수정사항이 띄어쓰기까지 반영되면서 나중에 확인할 때 불편하다는 단점이 있습니다.
https://withhamit.tistory.com/411


public class Main {
private static int[] answer = new int[]{0, 0, 0};
private static boolean[] isExist = new boolean[10];
Copy link
Contributor

Choose a reason for hiding this comment

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

배열 대신 List를 사용해보시는 건 어떨까요? 이번 프로젝트에서는 문제 될 게 없지만, Effective java item 28을 보면, 배열보다는 리스트를 사용하라는 이야기가 나와있습니다. 책을 갖고 계시지 않을 것 같아 아래에 블로그 주소를 참고하셔서 한번 공부해보셔도 좋을 것 같아요.

https://velog.io/@new_wisdom/Effective-java-item-28.-%EB%B0%B0%EC%97%B4%EB%B3%B4%EB%8B%A4%EB%8A%94-%EB%A6%AC%EC%8A%A4%ED%8A%B8%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%9D%BC


public static void baseball_game() {
boolean isPlay = true;
Scanner sc = new Scanner(System.in);
Copy link
Contributor

Choose a reason for hiding this comment

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

Scanner , Random 같은 클래스들은 따로 Util 클래스를 만들어서 거기에 public static으로 열어두고 사용하는 것은 어떨까요?

try {
int nxt = Integer.parseInt(sc.nextLine());
if(nxt == 0) System.exit(0);
else if(nxt == 1) continue;
Copy link
Contributor

Choose a reason for hiding this comment

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

nxt가 1일때 처리는 안 해줘도 정상적으로 작동하지 않을까요?

}
}

public static void baseball_game() {
Copy link
Contributor

Choose a reason for hiding this comment

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

basball_game 메서드를 BaseballGame 클래스로 따로 분리하여 관리하는게 어떨까요?
또한 자바 프로그래밍에서는 클래스, 인터페이스, 메소드, 변수의 이름을 지을 때 대중적으로 Camel Case를 사용합니다. 이 점도 참고해보시면 좋을 것 같아요.

}
}

public static void setting_answer() {
Copy link
Contributor

Choose a reason for hiding this comment

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

위에서 말씀드린 것과 동일하게 setting_answer 메서드도 SettingAnswer 클래스로 분리하시면 좋을 것 같습니다😄

for(int i=2 ; i>=0 ; i--) {
int now = number % 10;
number /= 10;
if(isExist[now]) {
Copy link
Contributor

Choose a reason for hiding this comment

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

프로그래밍 요구사항을 보면, 다음과 같이 나와있습니다.

  • indent(인덴트, 들여쓰기) depth를 3이 넘지 않도록 구현한다. 2까지만 허용한다.
    • 예를 들어 while문 안에 if문이 있으면 들여쓰기는 2이다.
    • 힌트: indent(인덴트, 들여쓰기) depth를 줄이는 좋은 방법은 함수(또는 메소드)를 분리하면 된다.

클래스를 분리하고, 메서드를 역할에 따라 나눠보시다 보면 해결될 문제같습니다!

int nxt = Integer.parseInt(sc.nextLine());
if(nxt == 0) System.exit(0);
else if(nxt == 1) continue;
} catch (IllegalArgumentException e) {
Copy link
Contributor

Choose a reason for hiding this comment

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

IllegalArgumentException 처리 잘 하셨네요👍


public static void main(String[] args) {

while(true) {

Choose a reason for hiding this comment

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

명확한 하나의 종료조건이 있는 상황에서 while(true)중 exit(0)하기보다 종료 조건을 명시하는 게 좋지 않을까요?

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