初級JAVA 4-チャレンジ

3044 ワード

デジタル野球ゲームを作る
ex)123(私が入力した数字)
135:1 S 1 B 1 O(ランダムに抽出した数字と比較)
ストライク:数字と位置が同じ場合
ボール:数字は同じですが、位置は違います.
アウト:3つの数字がボールやストライクでなければ
ゲームを終了するには3桁の全中を打つ必要があります!
<作成順序>
1.乱数が表示されます(1~9桁の数字で重複しません)
2.ユーザー入力の受信
3.正解との比較->SBO
説明する
	> 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;
	     }