<조건>
- Hero 클래스를 만들것
- 필드 변수는 name, hp
- 생성자를 통해서 필드변수 초기화
- hp는 30으로 필드에서 정의할 것
- punch 메소드를 생성
- 매개변수는 Hero타입 enemy
- 한번 펀치를 때리면 10씩 체력이 낮아짐
- battle 메소드를 생성
- static 메소드로 만들것
- 매개변수는 Hero타입 a, Hero타입 b
- 두 영웅 모두 체력이 남아있다면 계속 싸움 실행
- 2분의 1 확률로 공수 결정
- Math.*random*() < 0.5 사용
- 필드 변수는 name, hp
//Hero 클래스
public class Hero {
private int hp = 30;
private String name;
public Hero(String name) {
this.name = name;
}
//한번 펀치를 때리면 10씩 체력이 낮아짐
void punch (Hero enemy) {
enemy.hp -= 10;
System.out.println("["+name+"]의 펀치!");
System.out.println(enemy.name+"의 남은 체력은 "+enemy.hp+"/30 입니다.");
}
//배틀
public static void battle(Hero a, Hero b) {
Hero attack = a;
Hero deffender = b;
//두 영웅 모두 체력이 남아있다면 계속 싸움 실행
while(!(attack.hp<=0||deffender.hp<=0)) {
//2분의 1 확률로 공수 결정
attack = a;
deffender = b;
if(Math.random()<0.5) {
attack = b;
deffender = a;
}
//공격
attack.punch(deffender);
}
}
}
//메인 클래스
public class Run {
public static void main(String[] args) {
Hero a = new Hero("레넥톤");
Hero b = new Hero("나서스");
Hero.battle(a, b);
}
}
'자바스터디 문제풀이' 카테고리의 다른 글
TV구매 문제 - 상속 활용 (0) | 2023.08.14 |
---|---|
어린이 보호구역 문제 - 클래스 활용 (0) | 2023.08.14 |
각국 통화 화폐 문제- 상속 활용 (0) | 2023.08.13 |
등수 찍어보기 - 클래스 활용문제 (0) | 2023.08.09 |
신발사이즈 찍어보기 - 클래스 활용문제 (0) | 2023.08.09 |