-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathBaseballGame.java
More file actions
81 lines (65 loc) · 2.24 KB
/
BaseballGame.java
File metadata and controls
81 lines (65 loc) · 2.24 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package baseball.model;
import java.util.Random;
public class BaseballGame {
private static final int NUM_SIZE = 3;
BaseballNumber[] targetNumbers;
BaseballNumber[] userNumbers;
GameStatus status;
public void createTargetNumber(int start, int end) {
targetNumbers = new BaseballNumber[NUM_SIZE];
for (int i = 0; i < NUM_SIZE; i++) {
targetNumbers[i] = new BaseballNumber(new Random().nextInt(end) + start);
}
}
public void createUserNumbers(String input) {
userNumbers = new BaseballNumber[NUM_SIZE];
for (int i = 0; i < NUM_SIZE; i++) {
int inputNumber = Integer.parseInt(String.valueOf(input.charAt(i)));
userNumbers[i] = new BaseballNumber(inputNumber);
}
}
public void match() {
checkStrike();
checkBall();
}
private void checkStrike() {
for (int index = 0; index < NUM_SIZE; index++) {
if (userNumbers[index].getValue() == targetNumbers[index].getValue()) {
userNumbers[index].setStrike(true);
targetNumbers[index].setStrike(true);
}
}
}
private void checkBall() {
for (int targetIndex = 0; targetIndex < NUM_SIZE; targetIndex++) {
if (targetNumbers[targetIndex].isStrike()) continue;
for (int userIndex = 0; userIndex < NUM_SIZE; userIndex++) {
if (userNumbers[userIndex].isBall()) continue;
if (targetNumbers[targetIndex].getValue() == userNumbers[userIndex].getValue()) {
targetNumbers[userIndex].setBall(true);
userNumbers[userIndex].setBall(true);
break;
}
}
}
}
public void reset() {
for (BaseballNumber targetNumber: targetNumbers) {
targetNumber.setStrike(false);
targetNumber.setBall(false);
}
userNumbers = null;
}
public BaseballNumber[] getTargetNumbers() {
return targetNumbers;
}
public GameStatus getStatus() {
return status;
}
public void setStatus(GameStatus status) {
this.status = status;
}
public static int getNumSize() {
return NUM_SIZE;
}
}