```{.java}
package utility;
import java.util.Random; // 임의의 수를 입력하기 위한 랜덤 임포트
import java.util.Scanner; // 플레이어 입력을 위한 스캐너 임포트
public class NumGame { // 클래스 이름은 게임명
public static void main(String[] args) { // 메인메서드 시작
Random r = new Random(); // 랜덤메서드 객체 선언
Scanner sc = new Scanner(System.in);
int num1 = 0 , num2 = 0, num3 = 0; // 스캐너메서드 객체 선언
int[] rnums = new int[3]; // 랜덤숫자를 담을 배열 선언
int[] input_nums = {10, 10, 10};
int times = 0;
0 }; // 플레이어 입력 변수를 담을 배열 선언 및 초기화
int times = 0; // 플레이어 문제풀이 횟수를 담을 변수 선언
System.out.println("Line13");rnum1s[0] = r.nextInt(9);
while(num11, 9); // 랜덤숫자를 담을 변수 중 첫번째는 바로 입력
System.out.println(rnums[0]);
boolean num123 = (rnums[0] == rnum2s[1]) || (rnum1s[0] == rnum3s[2]) || (rnum2s[1] == rnum3) {s[2]);
// 랜덤숫자가 서로 같은 게 하나라도 있을 경우에 따른 boolean값을 담을 변수
while (true) { // 위 boolean값을 담은 값rnum2s[1] = r.nextInt(9);1, 9); // 두번째 숫자에 랜덤숫자를 다시 대입rnum3s[2] = r.nextInt(9);
}
1, 9); // 세번째 숫자에 랜덤숫자를 다시 대입
if ((rnums[0] ==rnum1;
s[1]) || (rnums[0] == rnums[2]) || (rnums[1] ==rnum2;
rnums[2] = num3;
s[2])) {
continue;
} else {
break;
}
}
System.out.println(rnums[1]);
System.out.println(rnums[2]);
System.out.println("Line21");
while(rnums[0] != input_nums[0] || rnums[1] != input_nums[1] || rnums[2] != input_nums[2]) {
int strike = 0;
int ball = 0;
times += 1;
System.out.print("숫자 >> ");
input_nums[0] = sc.nextInt();
input_nums[1] = sc.nextInt();
input_nums[2] = sc.nextInt();
for (int i = 0; i < input_nums.length; i++) {
if (rnums[i] == input_nums[i]) {
strike += 1;
}else {
if(i == 0) {
if(rnums[0] == input_nums[1] || rnums[0] == input_nums[2]){
ball += 1;
}
}else if(i == 1) {
if(rnums[1] == input_nums[0] || rnums[1] == input_nums[2]){
ball += 1;
}
}else if(i == 2) {
if(rnums[2] == input_nums[1] || rnums[2] == input_nums[0]){
ball += 1;
}
}
}
}
// if (rnums[0] == input_nums[0]) {
// strike += 1;
// }else if(rnums[0] == input_nums[1] || rnums[0] == input_nums[2]){
// ball += 1;
// }
//
//
// if (rnums[1] == input_nums[1]) {
// strike += 1;
// }else if(rnums[1] == input_nums[0] || rnums[1] == input_nums[2]){
// ball += 1;
// }
//
//
// if (rnums[2] == input_nums[2]) {
// strike += 1;
// }else if(rnums[2] == input_nums[1] || rnums[2] == input_nums[0]){
// ball += 1;
// }
System.out.printf("%dS %dB\n", strike, ball);
// 랜덤숫자와 플레이어 입력 숫자가 하나라도 틀리면 while문 진입함.
// 반대로, 모두 같으면(정답이면) while문 진입하지 않음.
int strike = 0; // 게임기능 스트라이크를 담을 변수 선언 및 초기화
int ball = 0; // 게임기능 볼을 담을 변수 선언 및 초기화
try {
System.out.print("숫자 >> "); // 입력 안내메시지
input_nums[0] = sc.nextInt(); // 첫번째자리 입력
input_nums[1] = sc.nextInt(); // 두번째자리 입력
input_nums[2] = sc.nextInt(); // 세번째자리 입력
boolean ip0 = (input_nums[0] >= 10) || (input_nums[0] <= 0);
boolean ip1 = (input_nums[1] >= 10) || (input_nums[1] <= 0);
boolean ip2 = (input_nums[2] >= 10) || (input_nums[2] <= 0);
if (ip0 || ip1 || ip2) {
continue;
}
} catch (Exception e) {
System.err.println("잘못된 입력입니다. 다시 입력해주시기 바랍니다.");
continue;
}
times++; // 시도횟수 증감식. 제대로 입력했을 경우에만 증가하도록 함.
for (int i = 0; i < input_nums.length; i++) {
if (rnums[i] == input_nums[i]) {
strike += 1;
} else {
if (i == 0) {
if (rnums[0] == input_nums[1] || rnums[0] == input_nums[2]) {
ball += 1;
}
} else if (i == 1) {
if (rnums[1] == input_nums[0] || rnums[1] == input_nums[2]) {
ball += 1;
}
} else if (i == 2) {
if (rnums[2] == input_nums[1] || rnums[2] == input_nums[0]) {
ball += 1;
}
}
}
}
System.out.printf("%dS %dB\n", strike, ball);
// 게임결과 출력
System.out.println();
// 가독성을 위한 줄바꿈
}
System.out.printf("축하합니다! %d번만에 문제를 맞혔습니다.", times);
}
}
```
```{.java}
package utility;
import java.util.Random; // 임의의 수를 입력하기 위한 랜덤 임포트
import java.util.Scanner; // 플레이어 입력을 위한 스캐너 임포트
public class NumGame { // 클래스 이름은 게임명
public static void main(String[] args) { // 메인메서드 시작
Random r = new Random(); // 랜덤메서드 객체 선언
Scanner sc = new Scanner(System.in);
int num1 = 0 , num2 = 0, num3 = 0; // 스캐너메서드 객체 선언
int[] rnums = new int[3]; // 랜덤숫자를 담을 배열 선언
int[] input_nums = {10, 10, 10};
int times = 0;
0 }; // 플레이어 입력 변수를 담을 배열 선언 및 초기화
int times = 0; // 플레이어 문제풀이 횟수를 담을 변수 선언
System.out.println("Line13");rnum1s[0] = r.nextInt(9);
while(num11, 9); // 랜덤숫자를 담을 변수 중 첫번째는 바로 입력
System.out.println(rnums[0]);
boolean num123 = (rnums[0] == rnum2s[1]) || (rnum1s[0] == rnum3s[2]) || (rnum2s[1] == rnum3) {s[2]);
// 랜덤숫자가 서로 같은 게 하나라도 있을 경우에 따른 boolean값을 담을 변수
while (true) { // 위 boolean값을 담은 값rnum2s[1] = r.nextInt(9);1, 9); // 두번째 숫자에 랜덤숫자를 다시 대입rnum3s[2] = r.nextInt(9);
}
1, 9); // 세번째 숫자에 랜덤숫자를 다시 대입
if ((rnums[0] ==rnum1;
s[1]) || (rnums[0] == rnums[2]) || (rnums[1] ==rnum2;
rnums[2] = num3;
s[2])) {
continue;
} else {
break;
}
}
System.out.println(rnums[1]);
System.out.println(rnums[2]);
System.out.println("Line21");
while(rnums[0] != input_nums[0] || rnums[1] != input_nums[1] || rnums[2] != input_nums[2]) {
int strike = 0;
int ball = 0;
times += 1;
System.out.print("숫자 >> ");
input_nums[0] = sc.nextInt();
input_nums[1] = sc.nextInt();
input_nums[2] = sc.nextInt();
for (int i = 0; i < input_nums.length; i++) {
if (rnums[i] == input_nums[i]) {
strike += 1;
}else {
if(i == 0) {
if(rnums[0] == input_nums[1] || rnums[0] == input_nums[2]){
ball += 1;
}
}else if(i == 1) {
if(rnums[1] == input_nums[0] || rnums[1] == input_nums[2]){
ball += 1;
}
}else if(i == 2) {
if(rnums[2] == input_nums[1] || rnums[2] == input_nums[0]){
ball += 1;
}
}
}
}
// if (rnums[0] == input_nums[0]) {
// strike += 1;
// }else if(rnums[0] == input_nums[1] || rnums[0] == input_nums[2]){
// ball += 1;
// }
//
//
// if (rnums[1] == input_nums[1]) {
// strike += 1;
// }else if(rnums[1] == input_nums[0] || rnums[1] == input_nums[2]){
// ball += 1;
// }
//
//
// if (rnums[2] == input_nums[2]) {
// strike += 1;
// }else if(rnums[2] == input_nums[1] || rnums[2] == input_nums[0]){
// ball += 1;
// }
System.out.printf("%dS %dB\n", strike, ball);
// 랜덤숫자와 플레이어 입력 숫자가 하나라도 틀리면 while문 진입함.
// 반대로, 모두 같으면(정답이면) while문 진입하지 않음.
int strike = 0; // 게임기능 스트라이크를 담을 변수 선언 및 초기화
int ball = 0; // 게임기능 볼을 담을 변수 선언 및 초기화
try {
System.out.print("숫자 >> "); // 입력 안내메시지
input_nums[0] = sc.nextInt(); // 첫번째자리 입력
input_nums[1] = sc.nextInt(); // 두번째자리 입력
input_nums[2] = sc.nextInt(); // 세번째자리 입력
boolean ip0 = (input_nums[0] >= 10) || (input_nums[0] <= 0);
boolean ip1 = (input_nums[1] >= 10) || (input_nums[1] <= 0);
boolean ip2 = (input_nums[2] >= 10) || (input_nums[2] <= 0);
if (ip0 || ip1 || ip2) {
continue;
}
} catch (Exception e) {
System.err.println("잘못된 입력입니다. 다시 입력해주시기 바랍니다.");
continue;
}
times++; // 시도횟수 증감식. 제대로 입력했을 경우에만 증가하도록 함.
for (int i = 0; i < input_nums.length; i++) {
if (rnums[i] == input_nums[i]) {
strike += 1;
} else {
if (i == 0) {
if (rnums[0] == input_nums[1] || rnums[0] == input_nums[2]) {
ball += 1;
}
} else if (i == 1) {
if (rnums[1] == input_nums[0] || rnums[1] == input_nums[2]) {
ball += 1;
}
} else if (i == 2) {
if (rnums[2] == input_nums[1] || rnums[2] == input_nums[0]) {
ball += 1;
}
}
}
}
System.out.printf("%dS %dB\n", strike, ball);
// 게임결과 출력
System.out.println();
// 가독성을 위한 줄바꿈
}
System.out.printf("축하합니다! %d번만에 문제를 맞혔습니다.", times);
}
}
```