1 ~ 9 사이의 랜덤한 수 3개를 생성하여 숫자 농구 게임을 만들어보시오.
/* 숫자 농구 게임
* 135 -> 1~9사이의 랜덤한 수 3개 생성
*
* 123 : 1S 1B 1O
* 136 : 2S 0B 1O
*/
int num1 = (int)(Math.random() * 9) + 1;
int num2 = (int)(Math.random() * 9) + 1;
if(num1 == num2){
num2 = (int)(Math.random() * 9) + 1;
}
int num3 = (int)(Math.random() * 9) + 1;
while(num3 == num1 || num3 == num2){
num3 = (int)(Math.random() * 9) + 1;
}
int strike = 0;
int ball = 0;
int out = 0;
do{
Scanner s = new Scanner(System.in);
System.out.println("중복되지 않는 숫자 세개를 입력해주세요.");
System.out.println("첫번째 숫자>");
int an1 = Integer.parseInt(s.nextLine());
System.out.println("두번째 숫자>");
int an2 = Integer.parseInt(s.nextLine());
System.out.println("세번째 숫자>");
int an3 = Integer.parseInt(s.nextLine());
if(num1 == an1){
strike += 1;
}else if(num1 == an2 || num1 == an3){
ball += 1;
}else{
out += 1;
}
if(num2 == an2){
strike += 1;
}else if(num2 == an3 || num2 == an1){
ball += 1;
}else{
out += 1;
}
if(num3 == an3){
strike += 1;
}else if(num3 == an2 || num3 == an1){
ball += 1;
}else{
out += 1;
}
if(strike == 3){
System.out.println("WIN");
}else{
System.out.println(strike + "strike " + ball + "ball " + out + "out");
}
}while(strike < 3); //do-while문은 실행후 조건식 확인
//-----------------샘 풀이-----------------
int a1 = (int)(Math.random() * 9) + 1;
int a2;
int a3;
do{
a2 = (int)(Math.random() * 9) + 1;
}while(a1==a2);
do{
a3 = (int)(Math.random() * 9) + 1;
}while(a1==a3 || a2==a3);
Scanner sc = new Scanner(System.in);
int count = 0;
while(true){
System.out.println("3자리 숫자>");
int input = Integer.parseInt(sc.nextLine());
int i3 = input % 10;
input /= 10;
int i2 = input % 10;
input /= 10;
int i1 = input % 10;
//각 자리 숫자 구하는 법
int strike = 0;
int ball = 0;
int out = 0;
if(a1 == i1) strike++;
if(a2 == i2) strike++;
if(a3 == i3) strike++;
if(a1 == i2 || a1 == i3) ball++;
if(a2 == i1 || a2 == i3) ball++;
if(a3 == i1 || a3 == i2) ball++;
out = 3 - strike - ball;
System.out.println(++count + "차 시도 (" + i1 + i2 + i3 + " ) :" + strike + "S " + ball + "B " + out + "O");
System.out.println("---------------------------");
if(strike == 3){
System.out.println("정답입니다!!");
break;
}
}