대전 게임 만들기 2
작성자 정보
- 작성자 최고관리자
- 작성일
컨텐츠 정보
- 조회 321
본문
영웅은 직업을 선택할 수 있다.
기사
법사
기사는 체력이 추가되며, 배쉬를 사용 할 수 있다.
체력: +100
배쉬: 데미지 30
법사는 체력이 추가되며, 파이어볼을 사용 할 수 있다.
체력: +80
파이어볼: 데미지 35
게임은 두 영웅의 생성과 동시에 시작되며 둘중 하나가 죽을 때까지 서로 공격 한다.
영웅이 공격 기회를 얻을 확률은 동일하다.
모든 기술은 동일한 발동 확률을 지닌다.
MainTest.java
Hero.java
Knight.java
Wizard.java
기사
법사
기사는 체력이 추가되며, 배쉬를 사용 할 수 있다.
체력: +100
배쉬: 데미지 30
법사는 체력이 추가되며, 파이어볼을 사용 할 수 있다.
체력: +80
파이어볼: 데미지 35
게임은 두 영웅의 생성과 동시에 시작되며 둘중 하나가 죽을 때까지 서로 공격 한다.
영웅이 공격 기회를 얻을 확률은 동일하다.
모든 기술은 동일한 발동 확률을 지닌다.
MainTest.java
import java.util.Random;
public class MainTest {
// 테스트 코드
public static void main(String[] args) throws InterruptedException {
Hero arthas = new Knight("아서스");
Hero leona = new Wizard("레오나");
Random random = new Random();
while (arthas.hp > 0 && leona.hp > 0) {
Boolean isArthasTurn = random.nextBoolean();
Hero attacker = isArthasTurn ? arthas : leona;
Hero defender = isArthasTurn ? leona : arthas;
attacker.attack(defender);
Thread.sleep(1000);
}
}
}
Hero.java
public class Hero {
protected String name;
protected int hp = 100;
// 생성자
public Hero(String name) {
this.name = name;
}
// 펀치
public void punch(Hero enermy) {
enermy.hp -= 10;
System.out.printf("[%s]의 ☞ 펀치 ☞n", this.name);
System.out.printf("t%s: %dn", enermy.name, enermy.hp);
}
// 공격
public void attack(Hero enermy) {
punch(enermy);
}
}
Knight.java
import java.util.Random;
public class Knight extends Hero {
// 생성자
public Knight(String name) {
super(name);
super.hp += 100; // 체력 +100
}
// 배쉬
public void bash(Hero enermy) {
enermy.hp -= 30;
System.out.printf("[%s]의 ⤷︎ 배쉬 ⤵n", this.name);
System.out.printf("t%s: %dn", enermy.name, enermy.hp);
}
// 공격
@Override
public void attack(Hero enermy) {
if (new Random().nextBoolean())
this.bash(enermy);
else
super.attack(enermy);
}
}
Wizard.java
import java.util.Random;
public class Wizard extends Hero {
// 생성자
public Wizard(String name) {
super(name);
super.hp += 80;
}
// 파이어볼
public void fireball(Hero enermy) {
enermy.hp -= 35;
System.out.printf("[%s]의 ✡ 파이어볼 ✡n", this.name);
System.out.printf("t%s: %dn", enermy.name, enermy.hp);
}
// 공격
@Override
public void attack(Hero enermy) {
if (new Random().nextBoolean())
this.fireball(enermy);
else
super.attack(enermy);
}
}
관련자료
-
이전
-
다음
댓글 0개
등록된 댓글이 없습니다.