숫자야구 게임 만들기
ex) 123 (내가 입력한 숫자)
135 : 1S 1B 1O (랜덤으로 뽑은 숫자와 비교)
스트라이크 : 숫자와 위치가 동일할 때
볼 : 숫자는 같지만 위치가 다를 때
아웃 : 숫자 3개가 볼이나 스트라이크가 아닐 경우
세자리의 스트라이크를 맞춰야 게임 종료!
<만들 순서>
1. 랜덤 숫자 발생 (1~9자리의 세자리 숫자, 중복안됨)
2. 사용자한테 입력받기
3. 정답이랑 비교하고 -> S B O 만들기
내 풀이
> Scanner sc = new Scanner(System.in);
/*
int random1 = (int)(Math.random() * 9) + 1;;
int random2 = (int)(Math.random() * 9) + 1;;
int random3 = (int)(Math.random() * 9) + 1;;
while(random1 == random2){
random2 = (int)(Math.random() * 9) + 1;
}
while(random1 == random3 || random2 == random3){
random3 = (int)(Math.random() * 9) + 1;
}
int strike = 0;
int ball = 0;
int out = 0;
System.out.println("============ 숫자 야구 게임 ============");
System.out.println("중복되지 않는 숫자 3개를 입력해주세요.");
do{
strike = 0;
ball = 0;
out = 0;
System.out.println("첫번째 숫자를 입력해주세요.>");
int num1 = Integer.parseInt(sc.nextLine());
System.out.println("두번째 숫자를 입력해주세요.>");
int num2 = Integer.parseInt(sc.nextLine());
System.out.println("세번째 숫자를 입력해주세요.>");
int num3 = Integer.parseInt(sc.nextLine());
if(random1 == num1){
strike++;
}else if(random1 == num2||random1 == num3){
ball++;
}else{
out++;
}if(random2==num2){
strike++;
}else if(random2 == num1||random2 == num3){
ball++;
}else{
out++;
}if(random3==num3){
strike++;
}else if(random3 == num1||random3 == num2){
ball++;
}else{
out++;
}if(strike == 3){
System.out.println("========== 3S! YOU WIN!!! ==========");
}else{
System.out.println(strike + "S " + ball + "B " + out + "O ");
System.out.println("========== 다시 시도해주세요!============");
}
}while(strike < 3);
선생님 풀이
int a1 = 0;
int a2 = 0;
int a3 = 0;
do{ a1 = (int)(Math.random() * 9) + 1;
a2 = (int)(Math.random() * 9) + 1;
a3 = (int)(Math.random() * 9) + 1;
}while( a1 == a2 || a1 ==a3 || a2 == a3);
int count = 0; //사용자가 몇번만에 정답을 맞추는지 횟수
while(true){
System.out.println("3자리 숫자");
int input = Integer.parseInt(sc.nextLine());
int i3 = input % 10; //1의자리
input /= 10;
int i2 = input % 10; //10의 자리
input /= 10;
int i1 = input % 10; //100의 자리
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;
}