From 909e3f595c1acf93cfa1580212868c52efd11874 Mon Sep 17 00:00:00 2001 From: Shinseojin <02sjin@naver.com> Date: Sun, 20 Apr 2025 16:55:55 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=EC=88=AB=EC=9E=90=20=EC=9E=85=EB=A0=A5=20?= =?UTF-8?q?=EB=B0=8F=20=EC=8A=A4=ED=8A=B8=EB=9D=BC=EC=9D=B4=ED=81=AC/?= =?UTF-8?q?=EB=B3=BC=20=ED=8C=90=EC=A0=95=20=EB=A1=9C=EC=A7=81=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84=20(Not=20passed=20test=20yet)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/baseball/Application.java | 64 ++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 2 deletions(-) diff --git a/src/main/java/baseball/Application.java b/src/main/java/baseball/Application.java index b4f76f0..ee19890 100644 --- a/src/main/java/baseball/Application.java +++ b/src/main/java/baseball/Application.java @@ -1,7 +1,67 @@ package baseball; +import java.util.*; + public class Application { public static void main(String[] args) { - // TODO: 코드 구현 + System.out.println("숫자 야구 게임을 시작합니다."); + Scanner sc = new Scanner(System.in); + + while (true) { + List computer = generateRandomDigits(); + boolean correct = false; + + while (!correct) { + System.out.print("숫자 3자리를 입력하세요 (예: 123): "); + String input = sc.next(); + List user = new ArrayList<>(); + for (int i = 0; i < 3; i++) { + user.add(input.charAt(i) - '0'); + } + + int strike = 0; + int ball = 0; + + for (int i = 0; i < 3; i++) { + if (user.get(i).equals(computer.get(i))) { + strike++; + } else if (computer.contains(user.get(i))) { + ball++; + } + } + + if (strike == 0 && ball == 0) { + System.out.println("미스"); + } else { + System.out.println(strike + " 스트라이크 " + ball + " 볼"); + } + + if (strike == 3) { + System.out.println("3개의 숫자를 모두 맞히셨습니다! 게임 종료"); + System.out.print("게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요: "); + int choice = sc.nextInt(); + if (choice == 2) { + System.out.println("게임을 종료합니다."); + return; + } else { + break; + } + } + } + } + } + + public static List generateRandomDigits() { + List digits = new ArrayList<>(); + Random random = new Random(); + + while (digits.size() < 3) { + int num = random.nextInt(9) + 1; // 1~9 + if (!digits.contains(num)) { + digits.add(num); + } + } + + return digits; } -} \ No newline at end of file +} From c8040c1aa52da7e643be1bff3ee55b64f74aab7d Mon Sep 17 00:00:00 2001 From: Shinseojin <02sjin@naver.com> Date: Sat, 26 Apr 2025 12:28:26 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=20README.md=ED=8C=8C=EC=9D=BC=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..139576d --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# 숫자야구 (Number Baseball) + +## 프로젝트 소개 +컴퓨터가 랜덤으로 생성한 3자리 숫자를 사용자가 입력해서 맞추는 게임입니다. +숫자와 자리 모두 맞으면 스트라이크, 숫자만 맞으면 볼, 아무것도 맞지 않으면 미스로 판정합니다. + +## 기능 +- 1~9 사이의 서로 다른 숫자 3개를 랜덤으로 생성 +- 사용자가 숫자 3자리를 입력하면 결과를 출력 +- 스트라이크, 볼, 미스 판정 +- 정답을 맞추면 게임을 재시작하거나 종료할 수 있음 + +## 실행 방법 +1. `Application.java` 파일을 실행합니다. +2. 콘솔 창에 출력되는 안내에 따라 3자리 숫자를 입력하여 게임을 진행합니다.