"우아한테크캠프 Pro" 프리코스 과제
기본적으로 1부터 9까지 서로 다른 수로 이루어진 3자리의 수를 맞추는 게임이다.
같은 수가 같은 자리에 있으면 스트라이크,
다른 자리에 있으면 볼,
같은 수가 전혀 없으면 포 볼 또는 낫싱이란 힌트를 얻고,
그 힌트를 이용해서 먼저 상대방(컴퓨터)의 수를 맞추면 승리한다.
[예시]
상대방(컴퓨터)의 수가 425일 때,
- 123을 제시한 경우: 1 스트라이크
- 456을 제시한 경우: 1 스트라이크 1볼
- 789를 제시한 경우: 낫싱
위 "숫자 야구 게임"에서 상대방의 역할을 컴퓨터가 한다.
컴퓨터는 1에서 9까지 서로 다른 임의의 수 3개를 선택한다.
게임 플레이어는 컴퓨터가 생각하고 있는 3개의 숫자를 입력하고,
컴퓨터는 입력한 숫자에 대한 결과를 출력한다.
이 같은 과정을 반복해 컴퓨터가 선택한 3개의 숫자를 모두 맞히면 게임이 종료된다.
게임을 종료한 후 게임을 다시 시작하거나 완전히 종료할 수 있다.
: 기능 목록의 카테고리는 다음과 같이 구성된다.
- 게임에 사용할 공
Ball
- 게임 1회 정보를 가진
Inning
- 게임을 즐기는
Player
- Player 상대가 되는
Computer
- 게임 입출력을 담당하는
Console
- 게임 애플리케이션 로직을 담당하는
NumberBaseball
- 게임 애플리케이션을 실행시킬
Application
-
로 개별 기능이 표시된다.
-
Ball
- 야구게임에서 사용할
Ball
생성- 1개의 공은 구질 숫자
Number
를 가진다. Number
에 위한 숫자는 1에서 9까지 숫자로 구성된다.
- 1개의 공은 구질 숫자
- 야구게임에서 사용할
-
Inning
- 야구게임 1회를 구성하는 정보를 가진
Inning
생성- 사용되는
Ball
은 3개이다. - 3개의
Ball
은 중복되지 않은 숫자로 구성된다.
- 사용되는
- 야구게임 1회를 구성하는 정보를 가진
-
Player
- 야구게임을 즐기는
Player
생성- 게임 1회 정보를 가진
Inning
을 가진다.
- 게임 1회 정보를 가진
- 야구게임을 즐기는
-
Computer
-
Player
를 상대할Computer
생성Player
를 상대하기 위한Inning
정보를 가진다.Inning
정보는 야구게임이 새로 시작할 때마다 무작위로 생성된다.Inning
정보 안Ball
들의Number
는 무작위로 할당된다.
-
-
Console
- Input
-
Player
가Computer
와 야구게임을 진행하기 위한 3자리 수 입력 -
Player
가Computer
와 숫자 야구 게임을 새로 시작하거나, 종료할 수 있는 입력- 게임을 새로 시작하려면 1을 입력받는다.
- 게임을 종료하려면 2을 입력받는다.
-
- Output
-
Player
와Computer
의 게임에서Inning
매칭 결과 출력- 3개
Ball
이 모두 매칭 되지 않은 경우, "낫싱"을 출력한다. - 3개
Ball
이 부분 매칭 된 경우, ex) "1 스트라이크 1볼"을 출력한다. - 3개
Ball
이 모두 매칭 된 경우, "3개의 숫자를 모두 맞히셨습니다! 게임 종료"를 출력한다.
- 3개
-
- Input
-
NumberBaseball
- 하나의
Inning
에서Player
의 스트라이크 갯수 반환Player
는Inning
정보를 가지고 있어야 한다.Player
는Inning
정보를 가지고 있으면 'ACTIVE', 없으면 'INACTIVE' 상태를 가진다.Player
상태는 'ACTIVE'가 되어야 한다.
- 하나의
Inning
에서Player
의 볼 갯수 반환Player
는Inning
정보를 가지고 있어야 한다.Player
는Inning
정보를 가지고 있으면 'ACTIVE', 없으면 'INACTIVE' 상태를 가진다.Player
상태는 'ACTIVE'가 되어야 한다.
- 숫자야구게임 실행을 위한
NumberBaseball
실행 메서드- (1)
Player
는Inning
입력한다. - (2)
Computer
와Player
의Inning
을 매칭한다. - (3)
Inning
을 매칭한 결과를 출력한다. 매칭된 경우 (4)으로 넘어가고, 아닌 경우는 (1)로 다시 간다. - (4) 게임을 다시 할 지(NEW), 종료할 지(QUIT) 결정한다. 'NEW'이면, (1)으로 간다. 'QUIT'이면, 애플리케이션 종료한다.
- (1)
- 하나의
-
Application
- 숫자야구게임을 시작하기 위한
NumberBaseball
실행
- 숫자야구게임을 시작하기 위한
숫자를 입력해주세요:123
1스트라이크 1볼
숫자를 입력해주세요:145
1볼
숫자를 입력해주세요:671
2볼
숫자를 입력해주세요:216
1스트라이크
숫자를 입력해주세요:713
3스트라이크
3개의 숫자를 모두 맞히셨습니다! 게임종료
게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요.
1
숫자를 입력해주세요:123
1스트라이크 1볼
…