import java.util.Scanner;
public class Baseball {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
// 선언부
int r_num[] = new int[3];
int u_num[] = new int[3];
boolean clear;
boolean swit[] = new boolean[10]; // 0 ~ length-1
// allocation(동적할당)
// 초기화
clear = false;
for(int i=0; i<swit.length; i++) {
swit[i] = false;
}
int w, r;
w = 0;
while(w < 3) {
r = (int)(Math.random()*9);// 0~8
if(swit[r] == false) {
swit[r] = true;
r_num[w] = r + 1; // 1~9
w++;
}
}
for(int i=0; i<r_num.length; i++) {
System.out.print(r_num[i]+ " ");
}
System.out.println();
//////////////////////////////// loop
w = 0;
while(w<10) {
// user 입력
while(true) {
for(int i=0; i<u_num.length; i++) {
System.out.print((i + 1)+"번째 수 >> ");
u_num[i] = scn.nextInt();
}
if(u_num[0] != u_num[1]
&& u_num[1] != u_num[2]
&& u_num[0] != u_num[2]) {
break;
}
System.out.println("같은 숫자를 입력하셨습니다. 다시 입력해 주세요.");
}
// 비교 -> 탈출
// 스트라이크, 볼
int strike, ball;
strike = 0;
ball = 0;
// ball
for(int i=0; i< r_num.length; i++) { // 0 1 2
for (int j=0; j<u_num.length; j++) {// 0 1 2
if(u_num[i] == r_num[j] && i != j) {
ball++;
}
}
}
// strike
for(int i=0; i< r_num.length; i++) {
if(u_num[i] == r_num[i]) {
strike++;
}
}
// 맞췄을 경우
if(strike > 2) {
clear = true;
break;
}
// 메세지 출력
System.out.println(strike + "스트라이크"+ ball +"볼입니다.");
w++;
}
////////////////////////////////
// 결과출력
if(clear) {
System.out.println("Game Clear!!!");
}else {
System.out.println("Game Over~");
}
}
}
Baseball Game
조건
> 기회는 10번
> 3개의 숫자는 같은 수이면 안 된다.
> 자리수와 숫자가 같은 경우 : strike
> 숫자만 같은 경우 : ball
'문제풀이 > Java' 카테고리의 다른 글
[자바] 가위바위보 게임 (0) | 2021.05.11 |
---|---|
[자바] 배열 순차 정렬 (0) | 2021.05.11 |
[자바] 로또 번호 생성 (0) | 2021.05.10 |
[자바] 숫자 맞추기 UP&DOWN (0) | 2021.05.10 |
[자바] 문자열이 숫자인지 판별하기 (0) | 2021.05.10 |