μŠ€ν”„λ§ MVC 2편 - λ°±μ—”λ“œ μ›Ή 개발 ν™œμš© 기술 μ„Ήμ…˜ 5 μ΄μ–΄μ„œ μˆ˜κ°•

+) 22. 08. 04. day49 πŸŒ• 에 μΆ”κ°€ μ™„λ£Œ!


베이슀볼 μˆ˜μ • 끝내고 PR 올리기

4μ°¨ κ΅¬ν˜„ 끝냄. 근데 갈수둝 μ½”λ“œκ°€ 기괴해짐... 이게 λ§žλŠ” 거냐?

λ‚˜λ¨Έμ§€λŠ” λ˜‘κ°™μ€λ° Comparison 클래슀λ₯Ό μ—†μ• κ³  μΆ”μƒν΄λž˜μŠ€λ₯Ό λ„μž…ν•¨. 근데 κ·Έλž¬λ”λ‹ˆ 더... 해괴망츑해진...

Baseball Class

볼인지 μŠ€νŠΈλΌμ΄ν¬μΈμ§€ ν™•μΈν•˜λŠ” 좔상 클래슀

public abstract class Baseball {

	public abstract int checkBallOrStrike(List<Integer> randomNumber, List<Integer> userNumber);
}
  • checkBallOrStrike()
    λžœλ€κ°’κ³Ό μ‚¬μš©μžκ°€ μž…λ ₯ν•œ 값을 νŒŒλΌλ―Έν„°λ‘œ λ°›μ•„ λΉ„κ΅ν•˜λŠ” 좔상 λ©”μ„œλ“œ

Ball Class

Ball인지 ν™•μΈν•˜λŠ” 클래슀

public class Ball extends Baseball {

	private int ball;

    Ball() {
        this.ball = 0;
    }

    @Override
    public int checkBallOrStrike(List<Integer> randomNumber, List<Integer> userNumber) {

        for (int i = 0; i < 3; i++) {
            if (randomNumber.contains(userNumber.get(i))) {
                ball++;
            }
        }

        return ball;
    }
}
  • checkBallOrStrike()
    λžœλ€κ°’ λ¦¬μŠ€νŠΈμ— μ‚¬μš©μžκ°€ μž…λ ₯ν•œ μˆ˜κ°€ ν¬ν•¨λ˜μ–΄ 있으면 Ball 수λ₯Ό ν•˜λ‚˜ μ¦κ°€μ‹œν‚€κ³  λ°˜ν™˜ν•œλ‹€.

Strike Class

Strike인지 ν™•μΈν•˜λŠ” 클래슀

public class Strike extends Baseball {

    private int ball;
    private int strike;

    Strike() {
        this.ball = 0;
        this.strike = 0;
    }

    @Override
    public int checkBallOrStrike(List<Integer> randomNumber, List<Integer> userNumber) {

        for(int i = 0; i < 3; i++) {
            if (randomNumber.get(i).equals(userNumber.get(i))) {
                strike++;
                ball--;
            }
        }

        return strike;
    }

    public int getBall() {
        return ball;
    }
}
  • checkBallOrStrike()
    λžœλ€κ°’ λ¦¬μŠ€νŠΈμ— μžˆλŠ” μˆ˜μ™€ μ‚¬μš©μžκ°€ μž…λ ₯ν•œ μˆ˜κ°€ 값도 κ°™κ³  μœ„μΉ˜λ„ κ°™μœΌλ©΄ Strike 수λ₯Ό ν•˜λ‚˜ μ¦κ°€μ‹œν‚€κ³  λ°˜ν™˜ν•œλ‹€.
    μ΄λ•Œ Ball이 μ¦κ°€ν•˜λ©΄ μ•ˆλ˜λ―€λ‘œ Ball 값을 ν•˜λ‚˜ κ°μ†Œμ‹œν‚¨λ‹€.

  • getBall()
    값을 κ°μ†Œμ‹œν‚¨ Ball을 λ°˜ν™˜ν•œλ‹€.


Main Class

μ‹€ν–‰ν•˜λŠ” 클래슀

public class Main {

    public static void main(String[] args) {
        Input input = new Input();
        Output output = new Output();
        RandomNumber randomNumber = new RandomNumber();
        List<Integer> randomNumbers = randomNumber.createRandomNumber();

        int[] result = new int[2];
        output.printPlayBaseballGame();

        while(result[1] != 3) {

            Ball ball = new Ball();
            Strike strike = new Strike();

            List<Integer> userNumbers = input.arrToList(input.inputDataSplit(input.input()));

            int totalStrike = strike.checkBallOrStrike(randomNumbers, userNumbers);
            int totalBall = strike.getBall() + ball.checkBallOrStrike(randomNumbers, userNumbers);

            result = new int[]{totalBall, totalStrike};

            output.output(result);
        }
    }
}

μ € whileλ¬Έ μ•ˆμ—μ„œ 객체 μƒμ„±ν•˜λŠ” 것도 λ„ˆλ¬΄ κ±°μŠ¬λ¦°λ‹€... μ €κ²Œ 뭐꼬...? λ‚΄κ°€ μ§°μ§€λ§Œ κΈ°κ΄΄ν•˜λ‹€ κΈ°κ΄΄ν•΄~


μŠ€ν”„λ§ vs μŠ€ν”„λ§λΆ€νŠΈ


μ΄λŸ¬μ €λŸ¬ ν† ν”½ 및 κ°•μ˜ 정리

profile
김뉴비

0개의 λŒ“κΈ€

κ΄€λ ¨ μ±„μš© 정보

Powered by GraphCDN, the GraphQL CDN