package Day08;
import java.util.Random;
import java.util.Scanner;
public class BaseBallTry {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
Random r = new Random();
//1. 컴퓨터 랜덤 숫자 생성 단, 중복제거 O
//2. 유저 숫자 입력 단, 1~9값만 허용, 중복허용X
//3. 컴퓨터 랜덤 숫자와 유저 입력 숫자 비교
//3-1. 자리와 숫자가 같으면 strike
//3-2. 숫자는 같지만 자리가 다르면 ball
//3-3. strike, ball이 없으면 out
//3-4. 3 strike -> 홈런 프로그램 종료
//홈런이 나오기 전까지는 strike ball을 출력 or out 출력
//참 쉽죠
int[] com = new int[3];
int[] user = new int[3];
int strike = 0;
int ball = 0;
for (int i = 0; i<com.length; i++) {
com[i] = r.nextInt(9)+1;
for (int j = 0; j<i; j++) {
if (com[i] == com[j]) {
i--;
break;
}
}
}
System.out.printf("%s %s %s ", com[0], com[1], com[2]);
while(strike<3) {
for (int i = 0; i<user.length; i++) {
System.out.println();
System.out.printf(" %s 번째 숫자를 입력해주세요. : ", i+1);
user[i] = sc.nextInt();
for (int j = 0; j<i; j++) {
if (user[i] == user[j]||user[i]<1||user[i]>9) {
System.out.println("잘못된 입력 입니다.");
i--;
break;
}
}
}
strike=0;
ball=0;
for (int i = 0; i<user.length; i++) {
for (int j = 0; j<com.length; j++) {
if (user[i] == com[j]) {
if ((user[i] == com[i])) {
strike++;
}
else if (user[i] == com[j]) {
ball++;
}
}
}
}
if (strike == 0&&ball == 0) {
System.out.println("OUT 입니다.");
}
else if (strike == 3) {
System.out.println("홈런 입니다.");
}
else {
System.out.printf(" %s : Strike, %s : Ball 입니다.", strike, ball);
}
}
}
}
출력 결과
8 1 4
1 번째 숫자를 입력해주세요. : 4
2 번째 숫자를 입력해주세요. : 8
3 번째 숫자를 입력해주세요. : 1
0 : Strike, 3 : Ball 입니다.
1 번째 숫자를 입력해주세요. : 9
2 번째 숫자를 입력해주세요. : 99
잘못된 입력 입니다.
2 번째 숫자를 입력해주세요. : 8
3 번째 숫자를 입력해주세요. : 7
0 : Strike, 1 : Ball 입니다.
1 번째 숫자를 입력해주세요. : 8
2 번째 숫자를 입력해주세요. : 1
3 번째 숫자를 입력해주세요. : 4
홈런 입니다.
'Java > Test' 카테고리의 다른 글
Java Test.9 - 비행기 예약 시스템 (0) | 2023.03.23 |
---|---|
Java Test.8 - 배열 정렬 (0) | 2023.03.23 |
Java Test.7 - 배열 최대값, 최대값의 인덱스 구하기 (0) | 2023.03.22 |
Java Test.6 - 숫자 야구 게임 (0) | 2023.03.21 |
Java Test.5 - 가위 바위 보 (0) | 2023.03.21 |