내용: 임의의수 3자리의 숫자를 맞추는 게임
123
134
1S1B
-> 같은자리의 숫자 일치 => 스트라이크 S
-> 서로다른자리 숫자 일치 => 볼 B
게임의 종료 -> 3Strike
1. 중복되지 않는 1-9 난수 3개를 구한다. => 배열
2. 키보드로 부터 3개의 숫자를 입력 받는다. => 배열
3. 스트라이크, 볼의 갯수를 체크
4. 결과 출력
5. 8번째 성공
package kosta.game;
import java.util.Arrays;
public class BaseBall {
//난수를 추출, 스트라이크/볼 체크
int hidden[];
public BaseBall() {
hidden = new int[3];
hidden[0] = (int)(Math.random() * 9) + 1; // 1~9
do {
hidden[1] = (int)(Math.random() * 9) + 1;
}while(hidden[0] == hidden[1]);
do {
hidden[2] = (int)(Math.random() * 9) + 1;
}while(hidden[0] == hidden[2] || hidden[1] == hidden[2]);
System.out.println("난수 :" + Arrays.toString(hidden));
}
//스트라이크 체크
public int countStrike(int input[]) {
int strike = 0;
for(int i = 0; i < 3; i++) {
if(hidden[i] == input[i]) {
strike++;
}
}
return strike;
}
//볼 체크
public int countBall(int input[]) {
int ball = 0;
for(int i = 0; i < 3; i++) {
if(hidden[i] == input[(i+1)%3]) {
ball++;
}else if(hidden[i] == input[(i+2)%3]) {
ball++;
}
}
return ball;
}
}
package kosta.game;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int strike = 0;
int ball = 0;
int count = 0;
int input[] = new int[3];
BaseBall bb = new BaseBall();
Scanner sc = new Scanner(System.in);
do {
System.out.println("게임 도전");
System.out.print("숫자 입력 :");
for(int i = 0; i < 3; i++) {
input[i] = sc.nextInt();
}
strike = bb.countStrike(input);
ball = bb.countBall(input);
System.out.println(strike+"S"+ball+"B");
count++;
// System.out.println("입력 :"+Arrays.toString(input));
} while(strike != 3);
System.out.println(count + "번째 성공");
}
}