조건문과 반복문을 활용한 숫자야구게임

3064 단어 자바자바

package c_statement;

import java.util.Scanner;

public class Baseball {

public static void main(String[] args) {
	// Math.random(); // 0.0 ~ 1.0
	// (int)(Math.random() * 9) + 1; // 1 ~ 9

	int ran1 = (int) (Math.random() * 9) + 1; // 1 ~ 9
	int ran2 = (int) (Math.random() * 9) + 1;
	int ran3 = (int) (Math.random() * 9) + 1;

	while (ran2 == ran1) { // ran2가 중복이면 아닐 때까지 실행
		ran2 = (int) (Math.random() * 9) + 1;
	}

	while (ran3 == ran1 || ran3 == ran2) { // ran3가 중복이면 아닐 때까지 실행
		ran3 = (int) (Math.random() * 9) + 1;
	}

	Scanner s = new Scanner(System.in);

	int num1, num2, num3; // 입력 받을 3개의 숫자를 저장할 변수

	int strike = 0;
	int ball = 0;
	int out = 0;

	while (true) {
		System.out.println("정답 확인 테스트 : " + ran1 + ran2 + ran3); // 테스트하기 편하게 바로 정답을 띄우게 해둠

		System.out.print("첫 번째 숫자 입력(1 ~ 9 사이의 수 입력) : ");
		num1 = Integer.parseInt(s.nextLine());

		System.out.print("두 번째 숫자 입력(1 ~ 9 사이의 수 입력) : ");
		num2 = Integer.parseInt(s.nextLine());

		System.out.print("세 번째 숫자 입력(1 ~ 9 사이의 수 입력) : ");
		num3 = Integer.parseInt(s.nextLine());

		strike = 0; // 새 게임 시 strike, ball, out 초기화
		ball = 0;
		out = 0;

		if (ran1 == num1) { // 첫 번째 숫자가 자리까지 일치
			strike++;
		} else if (ran1 == num2 || ran1 == num3) { // 첫 번째 숫자가 숫자만 일치
			ball++;
		} else {
			out++;
		}

		if (ran2 == num2) { // 두 번째 숫자가 자리까지 일치
			strike++;
		} else if (ran2 == num1 || ran2 == num3) { // 두 번째 숫자가 숫자만 일치
			ball++;
		} else {
			out++;
		}

		if (ran3 == num3) { // 세 번째 숫자가 자리가 일치
			strike++;
		} else if (ran3 == num1 || ran3 == num2) { // 세 번째 숫자가 숫자만 일치
			ball++;
		} else {
			out++;
		}

		System.out.println("strike : " + strike + "," + " ball : " + ball + "," + " out : " + out);

		if (strike == 3) {
			System.out.println("정답");
			break;
		}
	}
	s.close();
}

}

(answer)
package c_statement;

import java.util.Scanner;

public class Baseball {

public static void main(String[] args) {

	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);

	Scanner s = new Scanner(System.in);
	int count = 0;
	while (true) {
		System.out.println("3자리 숫자 > ");

		int input = Integer.parseInt(s.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;
		}
	}
	s.close();

}

}

좋은 웹페이지 즐겨찾기