|
8 | 8 | 모든 라운드가 끝난 뒤 가장 많이 이동한 자동차들이 우승하게 됩니다. |
9 | 9 |
|
10 | 10 | ## 🎮게임 규칙 |
11 | | -* 🚗 게임에 참가할 자동차 수와 라운드 수를 정하고 게임을 시작합니다. |
| 11 | +* 🚗 게임에 참가할 자동차 이름을 입력합니다(자동차 이름의 길이는 5이하여야 합니다) |
12 | 12 |
|
13 | 13 |
|
14 | | -* 🎲 게임이 시작되면 모든 차는 매 라운드마다 랜덤으로 발생한 0부터 10까지의 숫자 중 3 이하가 나올 경우 정지해있고, 4이상의 숫자가 나올 경우 1만큼 전진합니다. |
| 14 | +* 🏁 라운드 수를 정하고 게임을 시작합니다. |
| 15 | + |
| 16 | + |
| 17 | +* 🎲 게임이 시작되면 모든 차는 매 라운드마다 랜덤으로 발생한 0부터 9까지의 숫자 중 3 이하가 나올 경우 정지해있고, 4이상의 숫자가 나올 경우 1만큼 전진합니다. |
15 | 18 |
|
16 | 19 |
|
17 | 20 | * 🏆 모든 라운드가 끝나고 우승한 자동차를 확인하면 됩니다. |
18 | 21 |
|
19 | 22 | ## 🔧프로젝트 설계 |
20 | | -프로젝트는 크게 자동차, 게임을 구현한 두개의 클래스로 작성되었습니다. |
21 | | -### 🚗자동차 클래스 |
22 | | -* 자동차 클래스는 필드로 이름과 이동 거리를 가지고 있습니다. |
| 23 | +프로젝트는 MVC 모델을 적용하여 controller, domain((model), view |
| 24 | +패키지로 이루어져 있습니다. 메인 클래스를 실행하면 controller 객체의 |
| 25 | +게임 실행 메서드가 실행되어 게임이 진행됩니다. |
23 | 26 |
|
24 | 27 |
|
25 | | -* 생성자는 이름을 매개변수로 받아 초기화하고 이동거리를 0으로 초기화합니다. |
| 28 | +### ⚙️Domain |
| 29 | +* domain 패키지는 자동차, 자동차의 리스트, 레이싱, 랜덤 변수 생성 클래스로 이루어져 |
| 30 | +있습니다. |
26 | 31 |
|
27 | 32 |
|
28 | | -* 자동차의 이동 메서드는 매개변수로 받은 값이 4 이상일 경우 이동거리를 1 증가시킵니다. |
| 33 | +* 자동차 클래스는 이름과 이동한 거리를 저장하고 있으며 생성된 랜덤 변수에 |
| 34 | +따라 한 칸 전진하는 메서드, 자신의 현재 위치가 주어진 값과 같은지 반환하는 |
| 35 | +메서드로 구성되어 있습니다. |
29 | 36 |
|
30 | | -### 🎮Game 클래스 |
31 | | -* 참가하는 차들과 우승한 차를 저장하기 위해 두 개의 리스트를 가지고 있습니다. |
32 | 37 |
|
33 | | - |
34 | | -* 게임 실행 메서드는 차 갯수와 라운드 수를 매개변수로 받아 게임 초기화, 게임 진행, 우승자 선정을 수행합니다. |
| 38 | +* 자동차 리스트 클래스는 자동차들의 배열을 저장하고 있습니다. 또한 리스트에 |
| 39 | +저장된 자동차들을 이동시키는 메서드, 리스트에 저장된 자동차 중 가장 멀리 |
| 40 | +이동한 자동차의 이동 거리를 반환하는 메서드, 어떤 한 위치에 있는 모든 자동차 |
| 41 | +들의 리스트를 반환하는 메서드로 이루어져 있습니다. |
| 42 | + |
| 43 | + |
| 44 | +* 레이싱 클래스는 참가한 자동차들의 리스트를 저장하고 있으며 참가한 자동차들을 |
| 45 | +전부 이동시키는 메서드와 참가한 자동차들 중 우승자들의 리스트를 반환하는 |
| 46 | +메서드를 가지고 있습니다. |
| 47 | + |
| 48 | + |
| 49 | +* 랜덤 변수 생성 클래스는 0부터 9사이의 숫자를 생성해서 반환하는 메서드를 |
| 50 | +가지고 있습니다. |
| 51 | + |
| 52 | +### 💻View |
| 53 | +- view 패키지는 입력을 담당하는 클래스와 출력을 담당하는 클래스를 담당하는 |
| 54 | +클래스로 이루어져 있습니다. |
| 55 | + |
| 56 | + |
| 57 | +- 입력을 담당하는 클래스는 자동차들의 이름을 양식에 맞게 입력받아 이를 문자열의 |
| 58 | +배열로 변환하여 반환하는 메서드와, 라운드 수를 입력받는 메서드로 이루어져 있습니다. |
| 59 | + |
| 60 | + |
| 61 | +- 출력을 담당하는 클래스는 사용자 입력 요청을 출력하는 메서드와 게임 현황을 |
| 62 | +출력하는 메서드, 우승자 리스트를 출력하는 메서드를 가지고 있습니다. |
35 | 63 |
|
36 | 64 |
|
37 | | -* 게임 초기화 메서드는 게임 실행 중 가장 먼저 호출되어 차 갯수를 매개변수로 받아 갯수만큼 자동차 객체를 생성하여 리스트에 저장합니다. 현 단계에서는 차 이름이 순차적으로 자동생성됩니다.( ex)Car_1, Car_2, ... ) |
| 65 | +- 출력의 양식을 지키기 위한 포맷팅 메서드도 출력을 담당하는 클래스에 |
| 66 | +포함되어 있습니다 |
38 | 67 |
|
39 | 68 |
|
40 | | -* 라운드 진행 메서드는 라운드 수만큼 실행되며 게임에 참여한 모든 차의 이동 메서드를 호출합니다. |
41 | | -이때 각 자동차마다 랜덤 변수 생성기를 통해 0부터 10까지의 숫자 중 하나를 매개변수로 줍니다 |
| 69 | +### 🎮Controller |
42 | 70 |
|
43 | 71 |
|
44 | | -* 우승자 선정 메서드는 모든 라운드가 끝난 후 가장 먼 거리를 이동한 차들을 우승자 리스트에 저장합니다. |
| 72 | +* Controller 클래스는 domain과 view의 클래스들을 이용하여 게임을 진행합니다 |
| 73 | +게임 실행 메서드가 실행되면 사용자에게 자동차 이름과 라운드 수를 입력받아 |
| 74 | +레이싱을 수행합니다. 레이싱이 끝나면 우승자 리스트를 출력하고 메서드가 |
| 75 | +종료됩니다. |
0 commit comments