‡πŸ‘©‍πŸ’» ‡/º Java

[Java] 2λͺ…μ΄μ„œ ν•˜λŠ” μ•Όλ°”μœ„ κ²Œμž„ κ΅¬ν˜„ν•˜κΈ°

Trudy | 솑연 2023. 11. 23. 20:49

문제

2λͺ…μ˜ ν”Œλ ˆμ΄μ–΄κ°€ μ•Όλ°”μœ„ κ²Œμž„μ„ ν•œλ‹€. 

ν”Œλ ˆμ΄μ–΄λŠ” μ •λ‹΅, 꽝, 폭탄 쀑 ν•˜λ‚˜λ₯Ό κ³ λ₯Έλ‹€. 
ν”Œλ ˆμ΄μ–΄λŠ” λͺ¨λ‘ μ²˜μŒμ— 5개의 ν•˜νŠΈλ₯Ό κ°–κ³  μ‹œμž‘ν•œλ‹€. 
ν”Œλ ˆμ΄μ–΄λŠ” ν•˜λ‚˜μ˜ 점수λ₯Ό ν•¨κ»˜ μ‚¬μš©ν•œλ‹€.

μ •λ‹΅: ν•˜νŠΈ 1 증가, 점수 1 증가
꽝: ν•˜νŠΈ 1 κ°μ†Œ
폭탄: ν•˜νŠΈ 1 κ°μ†Œ, 점수 1 κ°μ†Œ

μ μˆ˜κ°€ 3이 되면 κ²Œμž„μ„ 이기게 λœλ‹€.
두 ν”Œλ ˆμ΄μ–΄ λͺ¨λ‘ ν•˜νŠΈκ°€ λ‹€ λ–¨μ–΄μ§€λ©΄ κ²Œμž„μ€ μ§€κ²Œ λœλ‹€. 

μ½”λ“œ

λ¨Όμ € ν”Œλ ˆμ΄μ–΄μ˜ 정보λ₯Ό μ €μž₯ν•  Playerν΄λž˜μ“°μ™€ κ²Œμž„μ„ μ§„ν–‰ν•  MixGame ν΄λž˜μ“°λ‘œ μ½”λ“œ νŒŒμΌμ„ λ‚˜λˆ„μ—ˆλ‹€. 

 

Player.java μ—μ„œλŠ” ν”Œλ ˆμ΄μ–΄μ˜ 이름, ν•˜νŠΈ 갯수, 그리고 곡톡적인 점수λ₯Ό μ €μž₯ν•œλ‹€,. 

λͺ¨λ“  속성은 private으둜 μ„€μ •ν•΄μ£Όμ—ˆκ³ , 각각을 getκ³Ό setν•˜κΈ° μœ„ν•œ getterκ³Ό setter을 κ΅¬ν˜„ν–ˆλ‹€. 

score은 두 ν”Œλ ˆμ΄μ–΄ κ³΅ν†΅μ μœΌλ‘œ μ‚¬μš©ν•΄μ•Όν•˜λ―€λ‘œ μ „μ—­ λ³€μˆ˜λ‘œ static으둜 μ„€μ •ν–ˆλ‹€.

또, μ •λ‹΅, 꽝, 폭탄 λ©”μ†Œλ“œλ₯Ό λ§Œλ“€μ–΄μ„œ heart와 score을 μ‘°μž‘ν•΄μ£Όμ—ˆλ‹€. 

Player.java

package day04.mixgame;

public class Player {
    private String name;
    private int heart;

    private static int score;

    public Player(String name) {
        this.name = name;
        this.heart = 5;
        this.score = 0;
    }

    public String getName() {
        return name;
    }

    public int getHeart() {
        return heart;
    }

    public static int getScore() {
        return score;
    }

    public void jeongdap(){
        this.heart += 1;
		this.score += 1;
       System.out.println("μ •λ‹΅μž…λ‹ˆλ‹€! ν•˜νŠΈ 1 증가 (" + this.heart + ") 점수 1 증가 (" + getScore() + ")");
    }

    public void kkwang(){
        this.heart -= 1;
        System.out.println("κ½μž…λ‹ˆλ‹€! ν•˜νŠΈ 1 κ°μ†Œ (" + this.heart + ")");
    }

    public void bomb(){
        this.heart -= 1;
        if(score == 0) score = 0;
        else score -= 1;
        System.out.println("ν­νƒ„μž…λ‹ˆλ‹€! ν•˜νŠΈ 1 κ°μ†Œ (" + this.heart + ") 점수 1 κ°μ†Œ (" + getScore() + ")");
    }
}

MixGame.java

package day04.mixgame;

import java.util.Scanner;

public class MixGame {
    public static void main(String[] args) {
        //1: μ •λ‹΅, 2:꽝, 3:폭탄
        int[] answer = new int[3];

        Player p1 = new Player("Player 1");
        Player p2 = new Player("Player 2");
        Player[] players = {p1, p2};

        //κ²Œμž„ μ‹œμž‘
        while (p1.getHeart() > 0 || p2.getHeart() > 0) {
            //νƒˆμΆœ 쑰건 μΆ”κ°€ ( score = 3일 λ–„ )
            int score = Player.getScore();
            if (score == 3) {
                System.out.println("===== 이김 ~~~ =====");
                break;
            }

            Scanner sc = new Scanner(System.in);

            for (Player player : players) {
                if(player.getHeart() ==  0) continue;

                //μ •λ‹΅ 생성
                for (int i = 0; i < 3; i++) {
                    answer[i] = (int) (Math.random() * 3 + 1);
                    for (int j = 0; j < i; j++) {
                        if (answer[i] == answer[j]) {
                            i--;
                            break;
                        }
                    }
                }

                //ν”Œλ ˆμ΄μ–΄ μž…λ ₯ λ°›κΈ°
                System.out.print("["+ player.getName()+ "]" + " κ²Œμž„ μ‹œμž‘ 1,2,3 쀑 μž…λ ₯ν•˜μ„Έμš” ! ");
                int guess = sc.nextInt();

                int tmp = player.getHeart();
                int  index = 0;
                for (int i = 0; i < 3; i++) {
                    if (guess == answer[i]) index = i;
                }

                //μ •λ‹΅ 체크
                if (index == 1) {
                    player.jeongdap();
                } else if (index == 2) {
                    player.kkwang();
                } else {
                   player.bomb();
                }
            }
        }
        System.out.println("============κ²Œμž„ μ˜€λ²„===========");
    }
}