숫자 야구
## ✏ 구현 기능 목록
### 1. 게임 시작 문구를 출력한다.
### 2. 랜덤으로 3자리 수를 생성한다.
- 각 자리 수는 1~9
- 서로 다른 자리의 수는 중복 불가
### 3. 사용자에게 3자리 수를 입력받는다.
** 잘못된 값 입력 시 `IllegalArgumentException` 발생 후 종료
- 사용자가 입력한 숫자가 3자리가 아닐 때 ex)12345
- 숫자가 아닌 것을 입력했을 때, 음수일 때 ex) 우테코, -563
- 숫자가 중복되었을 때 ex) 113
### 4. 입력받은 수를 검사하여 볼과 스트라이크 개수를 반환한다.
### 5. 볼과 스트라이크 개수를 적절한 출력값으로 출력한다.
- if(스트라이크 0, 볼 0) : "낫싱"
- elif(스트라이크 3) : "3스트라이크" "\n" "3개의 숫자를 모두 맞히셨습니다! 게임 종료"
- else: n볼 n스트라이크
### 6. 3스트라이크가 나올 때까지 3~5번을 반복한다.
### 7. 게임을 종료한 후 게임을 다시 시작할지 그대로 끝낼지 선택하도록 한다.
- 재시작: 1 입력
- 종료: 2 입력
1주차 미션을 마치고, Discussion 아고라의 피어 리뷰에 올라오는 글들을 읽어보고 진짜 "뜨악!" 했다. 코딩테스트 연습을 할 때 백준 사이트를 활용하고, 프로그래머스를 사용해본 적이 없다보니 당연히 입력을 Scanner를 통해 받도록 설정해야 한다고만 생각했다.. 어쩐지 인원수 입력에 대한 설명이 없더라니 .... 출력도 무조건 해야 한다고 생각해서 굳이굳이 main method 써서 출력했다. 하지만 return 값으로 남겨두고 테스트 돌리면 됐던 것이다..... 하긴 그러면 바로 입력해서 출력해보면 되는데 테스트 코드가 괜히 있을 리가 없지..^^... 이번 2주차 미션을 시작하기 전에는 프로그래머스에서 자바로 사칙연산처럼 아주 간단한 문제들을 풀어보고 시작했다.
또, 객체 지향의 개념을 다시 잡았다. 객체 지향 언어라는 말을 워낙 많이 들어보고 중요한 걸 알고는 있었으나, 개념이 머릿속에 완전히 정리가 안 된 것 같았다. 개념들이 다 따로따로 들어있어서 연결이 안 되는 느낌..? 그러다보니 1주차에는 구현에만 신경을 써서 객체 지향 언어의 특징을 거의 살리지 못했다. 자바의 정석 객체 지향 언어 강의를 다시 보면서 정리했다. 이를 적용해 보기 위해서 여전히 미숙하지만 Class를 나누어 객체를 생성하여 이번 미션을 해결했다. 클래스를 나누니 훨씬 짧아지고 가독성이 높아졌다. 아직 7강은 복습을 못해서 완벽히 정리를 못한 상태지만 그래도 훨씬 수월해졌다. 3주차 미션 시작하기 전에 7강 마저 정리해야겠다.
이번 미션은 구현이 어렵지는 않았지만, ‘WARNING: An illegal reflective access operation has occurred’이 뜨는 것을 해결하지 못했다. 컴파일할 때는 문제가 없어서 마지막 테스트를 할 때도 BUILD SUCCESSFUL이 뜨긴 떠서 결국 그대로 제출했다. 계속 찾아봤는데 해결 방법이 JDK8로 낮추는 건데.. 애초에 조건이 11에서 실행이 가능해야 한다고 해서 pass. 2번째로는 스프링 부트의 버전을 얘기하던데.. 난 애초에 스프링 부트를 쓰지 않으므로 pass.. Readline을 두 번 실행하면 에러 메시지가 한 번 뜨고, 그 후에는 뜨지는 않는다. 그 에러 메세지 해결하려고 쓴 시간이 구현만큼 걸린 것 같은데.. 결국 없애지 못해서 속상하다..ㅠ 이번 미션 제출 끝나면 다른 분들 것 확인해봐야겠다.
* 개인적으로 숫자 야구 게임 너무 좋아해서 제출하고 나서도 계속 돌려보면서 게임중이다ㅋㅋㅋㅋ 혼자 놀기 가능..
https://github.com/sorrel012/java-baseball/tree/sorrel012
'IT 인사이트' 카테고리의 다른 글
[우아한테크코스 5기] 프리코스 4주차 미션 회고(마지막 미션) (0) | 2022.11.23 |
---|---|
[우아한테크코스 5기] 프리코스 3주차 미션 회고 (0) | 2022.11.16 |
[우아한테크코스 5기] 프리코스 1주차 미션 회고 (0) | 2022.11.02 |
KMF & KME 2022(K-Metaverse Festival & K-Metaverse Expo) 메타버스 박람회 방문기 (1) | 2022.10.17 |
2022 메타버스 코리아 박람회 방문기(KES 2022) (1) | 2022.10.08 |