JAVA 반목문 연습문제

어뮤즈온·2020년 11월 30일
0

초급자바

목록 보기
12/31

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;
	}
 }
profile
Hello, world!

0개의 댓글