Contents
내가 찾아서 한 것들DarkTempler (hp=100, power=70)
Arkan (hp=100, power=70)
5가지 유닛이 서로 다 공격할 수 있게 attack() 구현하기
생성
→ 질럿2
→ 드라군2
→ 다크템플러2
→ 리버2
→ 아칸2
공격
→ 질럿이 드라군 공격 hp 확인
→ 질럿이 다크템플러 공격 hp 확인
→ 리버가 아칸 공격 hp 확인
→ 아칸 리버 공격 hp 확인
→ 드라군이 다크템플러 공격 hp 확인
→ 리버가 리버 공격 hp 확인
Protoss 만들어서 추상적인 것에 의존하기 (attack 함수 결국 한개에요)
package ex05.ch04;
class protoss {
public int getHp() { // HP 상태확인
return 1;
}
public void setHp(int hp) { // HP 상태변경
}
public int getPower() { // Power 상태확인
return 1;
}
}
class Zealot extends protoss {
int hp = 100;
int power = 20;
public int getHp() {
return hp;
}
public void setHp(int hp) {
this.hp = hp;
}
public int getPower() { // 상태확인
return power;
}
}
class Dragoon extends protoss {
int hp = 100;
int power = 10;
public int getHp() {
return hp;
}
public void setHp(int hp) {
this.hp = hp;
}
public int getPower() { // 상태확인
return power;
}
}
class River extends protoss {
int hp = 100;
int power = 50;
public int getHp() {
return hp;
}
public void setHp(int hp) {
this.hp = hp;
}
public int getPower() { // 상태확인
return power;
}
}
class Arakn extends protoss {
int hp = 100;
int power = 70;
public int getHp() {
return hp;
}
public void setHp(int hp) {
this.hp = hp;
}
public int getPower() { // 상태확인
return power;
}
}
class DarkTempler extends protoss {
int hp = 100;
int power = 90;
public int getHp() {
return hp;
}
public void setHp(int hp) {
this.hp = hp;
}
public int getPower() { // 상태확인
return power;
}
}
public class StarGame {
static void attack(protoss aUnit, protoss hUnit) {
hUnit.setHp(hUnit.getHp() - aUnit.getPower());
}
public static void main(String[] args) {
protoss z1 = new Zealot(); // [ Zealot, protoss]
protoss z2 = new Zealot(); // [ Zealot, protoss]
protoss d1 = new Dragoon();
protoss d2 = new Dragoon();
protoss r1 = new River();
protoss r2 = new River();
protoss dt1 = new DarkTempler();
protoss dt2 = new DarkTempler();
protoss a1 = new Arakn();
protoss a2 = new Arakn();
attack(z1, d1);
System.out.println("질럿 공격(20) -> 드라군 d1의 hp : " + d1.getHp());
attack(z1, dt2);
System.out.println("질럿 공격(20) -> 다크템플러 dt2의 hp : " + dt2.getHp());
attack(r1, a1);
System.out.println("리버 공격(50) -> 아칸 a1의 hp : " + a1.getHp());
attack(a2, r1);
System.out.println("아칸 공격(70) -> 리버 r1의 hp : " + r1.getHp());
attack(d1, dt1);
System.out.println("드라군 공격(10) -> 다크템플러 dt1의 hp : " + dt1.getHp());
attack(r1, r2);
System.out.println("리버 공격(50) -> 리버 r2의 hp : " + r2.getHp());
attack(dt1, z1);
System.out.println("다크템플러 공격(90) -> 리버 r1의 hp : " + z1.getHp());
attack(dt2, dt1);
System.out.println("다크템플러 공격(90) -> 다크템플러 dt1의 hp : " + dt1.getHp());
}
}

강사님 정답
Share article