주 차별 팀 과제를 미리 혼자 작성하였다.
package Asignment;
import java.util.Arrays;
import java.util.Scanner;
public class Baseball {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
RanNum rn = new RanNum(); // RanNum 객체 생성
int[] ran = rn.ranNums(); // ranNums 메서드를 이용하여 랜덤한 값 출력
System.out.println(Arrays.toString(ran));
System.out.println("컴퓨터가 숫자를 생성하였습니다. 답을 맞춰보세요!");
int count = 1;
while (true) {
System.out.print(count + "번째 시도 : ");
String inputVal = sc.nextLine(); // 입력 값을 받음
String[] inputVals = inputVal.split("");
// String 배열을 -> int 배열로 변환
int[] intVals = new int[inputVals.length];
for (int i = 0; i < inputVals.length; i++) {
intVals[i] = Integer.parseInt(inputVals[i]);
}
Equals eq = new Equals(); // 객체 생성
System.out.println(eq.equalResult(intVals, ran)); // for 문을 이용하여 각 배열을 비교하여 결과를 return 함.
if ((eq.equalResult(intVals, ran)) == "3S") {
break;
}
count++;
}
System.out.println(count + "번만에 맞히셧습니다.");
System.out.println("게임을 종료합니다.");
}
}
package Asignment;
import java.util.Random;
public class RanNum {
public int[] ranNums() {
Random ra = new Random(); // 랜덤 객체 생성
int[] nums = new int[3]; // 배열 생성
for (int i = 0; i < nums.length; i++) { // 랜덤한 수 3개를 뽑음
nums[i] = ra.nextInt(10); // 0 ~ 9
for (int j = 0; j < i; j++) {
if (nums[i] == nums[j]) { // 중복 값 확인
i--;
}
}
}
return nums;
}
}
package Asignment;
import java.util.Arrays;
public class Equals {
public String equalResult(int[] a, int[] b) {
int strike = 0; // strike 갯수
int ball =0; // ball 갯수
if (Arrays.equals(a, b)) { // 배열을 비교하여 똑같으면 3S 반환
return "3S";
} else { // 배열이 다를시 for 문을 사용하여 각 배열 하나하나 비교
for (int i = 0; i < a.length; i++) {
if (a[i] == b[i]) {
strike++;
} else {
for (int j = 0; j < a.length; j++) {
if (a[i] == b[j]) {
ball++;
}
}
}
}
if (ball == 3){
return "3B";
}else {
return (String)(ball + "B" + strike + "S");
}
}
}
}
임시 작성
코드를 작성하면서 학습한 내용 등은 추후 정리