‡๐Ÿ‘ฉ‍๐Ÿ’ป ‡/º 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("============๊ฒŒ์ž„ ์˜ค๋ฒ„===========");
    }
}