대전 게임 만들기 2
페이지 정보
작성자 최고관리자 작성일 70-01-01 09:00 조회 331 댓글 0본문
영웅은 직업을 선택할 수 있다.
기사
법사
기사는 체력이 추가되며, 배쉬를 사용 할 수 있다.
체력: +100
배쉬: 데미지 30
법사는 체력이 추가되며, 파이어볼을 사용 할 수 있다.
체력: +80
파이어볼: 데미지 35
게임은 두 영웅의 생성과 동시에 시작되며 둘중 하나가 죽을 때까지 서로 공격 한다.
영웅이 공격 기회를 얻을 확률은 동일하다.
모든 기술은 동일한 발동 확률을 지닌다.
MainTest.java
[code=php]
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);
}
}
}
[/code]
Hero.java
[code=php]
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: %d\n", enermy.name, enermy.hp);
}
// 공격
public void attack(Hero enermy) {
punch(enermy);
}
}
[/code]
Knight.java
[code=php]
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: %d\n", enermy.name, enermy.hp);
}
// 공격
@Override
public void attack(Hero enermy) {
if (new Random().nextBoolean())
this.bash(enermy);
else
super.attack(enermy);
}
}
[/code]
Wizard.java
[code=php]
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: %d\n", enermy.name, enermy.hp);
}
// 공격
@Override
public void attack(Hero enermy) {
if (new Random().nextBoolean())
this.fireball(enermy);
else
super.attack(enermy);
}
}
[/code]
기사
법사
기사는 체력이 추가되며, 배쉬를 사용 할 수 있다.
체력: +100
배쉬: 데미지 30
법사는 체력이 추가되며, 파이어볼을 사용 할 수 있다.
체력: +80
파이어볼: 데미지 35
게임은 두 영웅의 생성과 동시에 시작되며 둘중 하나가 죽을 때까지 서로 공격 한다.
영웅이 공격 기회를 얻을 확률은 동일하다.
모든 기술은 동일한 발동 확률을 지닌다.
MainTest.java
[code=php]
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);
}
}
}
[/code]
Hero.java
[code=php]
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: %d\n", enermy.name, enermy.hp);
}
// 공격
public void attack(Hero enermy) {
punch(enermy);
}
}
[/code]
Knight.java
[code=php]
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: %d\n", enermy.name, enermy.hp);
}
// 공격
@Override
public void attack(Hero enermy) {
if (new Random().nextBoolean())
this.bash(enermy);
else
super.attack(enermy);
}
}
[/code]
Wizard.java
[code=php]
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: %d\n", enermy.name, enermy.hp);
}
// 공격
@Override
public void attack(Hero enermy) {
if (new Random().nextBoolean())
this.fireball(enermy);
else
super.attack(enermy);
}
}
[/code]
댓글목록 0
등록된 댓글이 없습니다.