23.06.13 TIL

정길규·2023년 6월 13일

과제 수행

주 차별 팀 과제를 미리 혼자 작성하였다.

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

임시 작성
코드를 작성하면서 학습한 내용 등은 추후 정리

0개의 댓글