From 36e7384c6794380543b13db2c4fdedf8ef581555 Mon Sep 17 00:00:00 2001 From: hiki31376 Date: Tue, 18 Jun 2024 16:10:35 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=EA=B2=8C=EC=9E=84=20=EC=8B=9C=EC=9E=91=20?= =?UTF-8?q?=EB=A9=94=EC=84=B8=EC=A7=80=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/baseball/Application.java | 5 ++++- src/main/java/baseball/game/Game.java | 15 +++++++++++++++ src/main/java/baseball/game/User.java | 4 ++++ 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 src/main/java/baseball/game/Game.java create mode 100644 src/main/java/baseball/game/User.java diff --git a/src/main/java/baseball/Application.java b/src/main/java/baseball/Application.java index dd95a34214..21a712610d 100644 --- a/src/main/java/baseball/Application.java +++ b/src/main/java/baseball/Application.java @@ -1,7 +1,10 @@ package baseball; +import baseball.game.Game; + public class Application { public static void main(String[] args) { - // TODO: 프로그램 구현 + Game game = new Game(); + game.start(); } } diff --git a/src/main/java/baseball/game/Game.java b/src/main/java/baseball/game/Game.java new file mode 100644 index 0000000000..2d660e053d --- /dev/null +++ b/src/main/java/baseball/game/Game.java @@ -0,0 +1,15 @@ +package baseball.game; + +public class Game { + + private Computer computer; + private User user; + + public void start() { + System.out.println("숫자 야구 게임을 시작합니다."); + play(); + } + + private void play() { + } +} diff --git a/src/main/java/baseball/game/User.java b/src/main/java/baseball/game/User.java new file mode 100644 index 0000000000..908dd9f996 --- /dev/null +++ b/src/main/java/baseball/game/User.java @@ -0,0 +1,4 @@ +package baseball.game; + +public class User { +} From 922a6a0c166714dad8e0a50d440c3541c9556970 Mon Sep 17 00:00:00 2001 From: hiki31376 Date: Tue, 18 Jun 2024 16:11:37 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\260\353\212\245 \352\265\254\355\230\204" | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 "\352\270\260\353\212\245 \352\265\254\355\230\204" diff --git "a/\352\270\260\353\212\245 \352\265\254\355\230\204" "b/\352\270\260\353\212\245 \352\265\254\355\230\204" new file mode 100644 index 0000000000..ae79f74c1a --- /dev/null +++ "b/\352\270\260\353\212\245 \352\265\254\355\230\204" @@ -0,0 +1,51 @@ +기능 구현 목록 + +1. 게임 시작 + + • 게임 시작 문구를 출력한다. + +2. 컴퓨터 숫자 생성 + + • 1부터 9까지 서로 다른 임의의 수 3개를 생성한다. + +3. 사용자 입력 + + • 사용자로부터 3자리의 수를 입력받는다. + • 입력 값의 유효성을 검사한다. + • 3자리 수인지 확인한다. + • 각 자리 숫자가 서로 다른지 확인한다. + • 잘못된 값을 입력한 경우 IllegalArgumentException을 발생시키고 애플리케이션을 종료한다. + +4. 힌트 제공 + + • 입력한 숫자와 컴퓨터 숫자를 비교하여 볼, 스트라이크, 낫싱을 판정한다. + • 같은 수가 같은 자리에 있으면 스트라이크 + • 다른 자리에 있으면 볼 + • 같은 수가 전혀 없으면 낫싱 + • 힌트를 사용자에게 출력한다. + +5. 게임 반복 + + • 정답을 맞출 때까지 게임을 반복한다. + • 사용자가 3개의 숫자를 모두 맞힐 때까지 2, 3, 4 과정을 반복한다. + +6. 게임 종료 및 재시작/종료 선택 + + • 사용자가 3개의 숫자를 모두 맞히면 게임을 종료한다. + • 3개의 숫자를 모두 맞히셨습니다! 게임 종료 문구를 출력한다. + • 게임 종료 후, 재시작 또는 완전 종료 여부를 묻는다. + • 게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요. 문구를 출력한다. + • 사용자의 선택에 따라 게임을 재시작하거나 종료한다. + • 1을 입력하면 게임을 재시작한다. + • 2를 입력하면 게임을 종료한다. + +기능 구현 목록 정리 + + 1. 게임 시작 문구 출력 기능 + 2. 컴퓨터 숫자 생성 기능 + 3. 사용자 입력 기능 + • 입력 값 유효성 검사 + 4. 힌트 제공 기능 + • 볼, 스트라이크, 낫싱 판정 및 출력 + 5. 게임 반복 기능 + 6. 게임 종료 및 재시작/종료 선택 기능