-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathModel.java
More file actions
64 lines (51 loc) · 1.59 KB
/
Model.java
File metadata and controls
64 lines (51 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package racingcar;
import camp.nextstep.edu.missionutils.Randoms;
import java.util.Random;
import java.util.StringTokenizer;
public class Model {
String[] car;
int[] len;
int numberOfAttempts;
int max = 0;
void saveCarName(String input){
StringTokenizer st = new StringTokenizer(input, ",");
car = new String[st.countTokens()];
len = new int[st.countTokens()];
for(int i=0; i<car.length; i++){
String str = st.nextToken();
if(str.length()>5) throw new IllegalArgumentException("5글자 이하로 작성");
car[i] = str;
}
}
void saveNumberOfAttempts(String input){
try {
numberOfAttempts = Integer.parseInt(input);
} catch (Exception e){
System.out.println("숫자를 입력하세요");
}
}
StringBuilder race(){
StringBuilder sb = new StringBuilder();
for (int i = 0; i < car.length; i++) {
int rand = Randoms.pickNumberInRange(0, 9);
if(rand>=4) len[i]++;
sb.append(car[i]).append(" : ")
.append("-".repeat(Math.max(0, len[i])))
.append("\n");
max = Math.max(len[i], max);
}
return sb;
}
StringBuilder findWinner(){
StringBuilder sb = new StringBuilder();
boolean jointWinner = false;
for(int i=0; i<car.length; i++){
if(len[i]==max) {
if(jointWinner) sb.append(", ");
jointWinner = true;
sb.append(car[i]);
}
}
return sb;
}
}