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 { +} 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. 게임 종료 및 재시작/종료 선택 기능