package kosta.Test;
public class Test02_야구게임2 {
public static String[] randomNum(int n) {
String[] num_arr= {"0","1","2","3","4","5","6","7","8","9"};
String temp;
for (int i = 0; i < num_arr.length; i++) {
int num=(int)(Math.random()*10);
temp=num_arr[0];
num_arr[0]=num_arr[num];
num_arr[num]=temp;
}
if(num_arr[0].equals("0")) {
temp=num_arr[0];
num_arr[0]=num_arr[n];
num_arr[n]=temp;
}
for (int i = 0; i < n; i++) {
System.out.print(num_arr[i]);
}
System.out.println();
String[] ran_arr=new String[n];
System.arraycopy(num_arr, 0, ran_arr, 0, n);
return ran_arr;
}
public static void strikeBall(int n,String[] ran_arr) {
int strike_count;
int ball_count;
while(true) {
System.out.print("숫자 입력:");
String myNum=DataInput.inputVal();
String[] myNum_arr=myNum.split("");
if(myNum_arr.length!=n) {
System.out.println("숫자를 다시 입력해주세요.");
continue;
}
strike_count=0;
ball_count=0;
// 1.스트라이크 카운트 체크 후, 스트라이크 배열 없애주기
for (int i = 0; i < myNum_arr.length; i++) {
if(ran_arr[i].equals(myNum_arr[i])) {
strike_count++;
myNum_arr[i]=null;
}
}
if(strike_count==n)break;
// 2.볼카운트 체크
for (int i1 = 0; i1 < myNum_arr.length; i1++) {
if(myNum_arr[i1]==null)continue;
for (int j = 0; j < myNum_arr.length; j++) {
if(myNum_arr[j]==null)continue;
if(ran_arr[i1].equals(myNum_arr[j])){
ball_count++;
}
}
}
System.out.println("야구 게임 결과: "+strike_count+"strike and "+ball_count+"ball");
}
System.out.println("야구 게임 결과: "+strike_count+"strike");
}
public static void main(String[] args) {
System.out.print("숫자 자릿수 입력:");
int n=Integer.parseInt(DataInput.inputVal());
String[] ran_arr=randomNum(n);
strikeBall(n, ran_arr);
}
}
package kosta.Test;
import java.util.Scanner;
public class Test02_야구게임 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
String[] arr= {"1","2","3","4","5","6","7","8","9"};
String temp;
for (int i = 0; i < arr.length; i++) {
int num=(int)(Math.random()*9);
temp=arr[0];
arr[0]=arr[num];
arr[num]=temp;
}
// for (int i = 0; i < arr.length; i++) {
// System.out.println(arr[i]);
// }
String[] random_arr=new String[3]; //임의의 숫자3개 배열 완성!!
System.arraycopy(arr, 0, random_arr, 0, 3);
for (int i = 0; i < random_arr.length; i++) {
System.out.print(random_arr[i]);
}
System.out.println();
while(true) {
System.out.print("3자리 숫자 입력:");
String num3=scan.nextLine();
String[] num3_arr=num3.split(""); //3자리 숫자 배열에 넣기 완료
// for (int i = 0; i < num3_arr.length; i++) {
// System.out.println(num3_arr[i]);
// }
int strike_count=0;
int ball_count=0;
int index=-1;
if(random_arr[0].equals(num3_arr[0])) {
strike_count++;
index=0;
}
if(random_arr[1].equals(num3_arr[1])) {
strike_count++;
index=1;
}
if(random_arr[2].equals(num3_arr[2])) {
strike_count++;
index=2;
}
if(strike_count==3) {
System.out.println("숫자 "+num3_arr[0]+num3_arr[1]+num3_arr[2]+" 의 결과: "+strike_count+"Strike");
break;
}else if(strike_count==2) {
System.out.println("숫자 "+num3_arr[0]+num3_arr[1]+num3_arr[2]+" 의 결과:"+strike_count+"Strike");
}else if(strike_count==1) {
if(index==0) {
if(random_arr[1].equals(num3_arr[2])) {
ball_count++;
}
if(random_arr[2].equals(num3_arr[1])) {
ball_count++;
}
}else if(index==1) {
if(random_arr[0].equals(num3_arr[2])) {
ball_count++;
}
if(random_arr[2].equals(num3_arr[0])) {
ball_count++;
}else {
if(random_arr[0].equals(num3_arr[1])) {
ball_count++;
}
if(random_arr[1].equals(num3_arr[0])) {
ball_count++;
}
}
}
System.out.println("숫자 "+num3_arr[0]+num3_arr[1]+num3_arr[2]+" 의 결과:"+strike_count+"Strike "+ball_count+" Ball");
}else {
for (int i = 0; i < random_arr.length; i++) {
for (int j = 0; j < num3_arr.length; j++) {
if(i==j) {
continue;
}else {
if(random_arr[i]==num3_arr[j]) ball_count++;
}
}
}
System.out.println("숫자 "+num3_arr[0]+num3_arr[1]+num3_arr[2]+" 의 결과:"+strike_count+"Strike "+ball_count+" Ball");
}
}
}
}