‡๐ฉ๐ป ‡/º 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("============๊ฒ์ ์ค๋ฒ===========");
}
}