/*
* 回合制
* 奥特曼打怪兽
* */
public class Game {
private Hero[] heroes = new Hero[3];
private Monster[] monsters = new Monster[3];
public void start(){
init();//初始化
int heroIndex = chooseHero();//选择英雄
int monsterIndex = chooseMonster();//选择怪兽
System.out.println("开始战斗!");
Hero chooseHero = heroes[heroIndex];
Monster chooseMonster = monsters[monsterIndex];
while(true){
chooseHero.hit(chooseMonster);
if(chooseMonster.getHp()<=0){
System.out.println("奥特曼胜利!");
chooseHero.setExp(chooseHero.getExp()+chooseMonster.getExp());
chooseHero.setMoney(chooseHero.getMoney()+chooseMonster.getMoney());
System.out.println("获得"+chooseMonster.getExp()+"经验,"+chooseMonster.getMoney()+"金币。");
break;
}
chooseMonster.hit(chooseHero);
if(chooseHero.getHp()<=0){
System.out.println("奥特曼牺牲,请大侠重新来过!");
break;
}
}
}
private int chooseMonster() {
for (int i = 0; i < monsters.length; i++) {
System.out.println(i+"."+monsters[i]);
}
System.out.println("请选择怪兽:");
Scanner scanner = new Scanner(System.in);
int index = scanner.nextInt();
//TODO 应该加判断
return index;
}
private int chooseHero() {
for (int i = 0; i < heroes.length; i++) {
System.out.println(i+"."+heroes[i]);
}
System.out.println("请选择英雄:");
Scanner scanner = new Scanner(System.in);
int index = scanner.nextInt();
//TODO 应该加判断
return index;
}
public void init(){
Hero h1 = new Hero("迪迦",100,100,100,100,1,0,100);
Hero h2 = new Hero("赛罗",120,80,120,80,2,0,100);
Hero h3 = new Hero("雷欧",90,90,90,80,2,0,100);
heroes[0] = h1;
heroes[1] = h2;
heroes[2] = h3;
System.out.println("奥特曼变身完毕!");
Monster m1 = new Monster("哥斯拉",150,95,60,70,10,5000,5000);
Monster m2 = new Monster("贝利亚",120,85,70,80,20,15000,15000);
Monster m3 = new Monster("金刚",110,90,80,90,30,25000,25000);
monsters[0] = m1;
monsters[1] = m2;
monsters[2] = m3;
System.out.println("怪兽出场完毕!");
}
}
//英雄奥特曼
public class Hero {
private String name;//名字
private int hp;//血量
private int ac;//防御
private int ap;//法术
private int ad;//攻击
private int grade;//等级
private int exp;//经验
private int money;//金币
//叫
public void cry(){
System.out.println("Hero.cry");
}
//打
public void hit(Monster monster){
//伤害:拿 英雄的攻击随机值 - 怪兽的防御随机值
//Math.random() 0~1之间的小数,能取到0,取不到1
int shanghai = (int) (ad*Math.random() - monster.getAc()*Math.random());
shanghai = shanghai < 0 ? 0 : shanghai;
monster.setHp(monster.getHp()-shanghai);//拿怪兽原来的血量-伤害 等于剩余的新血量
System.out.println(name+"打了"+monster.getName()+shanghai+"血,剩余"+monster.getHp()+"血");
}
@Override
public String toString() {
return "Hero{" +
"name='" + name + '\'' +
", hp=" + hp +
", ac=" + ac +
", ap=" + ap +
", ad=" + ad +
", grade=" + grade +
", exp=" + exp +
", money=" + money +
'}';
}
public Hero() {
}
public Hero(String name, int hp, int ac, int ap, int ad, int grade, int exp, int money) {
this.name = name;
this.hp = hp;
this.ac = ac;
this.ap = ap;
this.ad = ad;
this.grade = grade;
this.exp = exp;
this.money = money;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getHp() {
return hp;
}
public void setHp(int hp) {
this.hp = hp;
}
public int getAc() {
return ac;
}
public void setAc(int ac) {
this.ac = ac;
}
public int getAp() {
return ap;
}
public void setAp(int ap) {
this.ap = ap;
}
public int getAd() {
return ad;
}
public void setAd(int ad) {
this.ad = ad;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public int getExp() {
return exp;
}
public void setExp(int exp) {
this.exp = exp;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
}
//怪兽
public class Monster {
private String name;//名字
private int hp;//血量
private int ac;//防御
private int ap;//法术
private int ad;//攻击
private int grade;//等级
private int exp;//经验
private int money;//金币
//叫
public void cry(){
System.out.println("Hero.cry");
}
//打
public void hit(Hero hero){
//伤害:拿 怪兽的攻击随机值 - 英雄的防御随机值
int shanghai = (int) (ad*Math.random() - hero.getAc()*Math.random());
shanghai = shanghai < 0 ? 0 : shanghai;
hero.setHp(hero.getHp()-shanghai);//拿怪兽原来的血量-伤害 等于剩余的新血量
System.out.println(name+"打了"+hero.getName()+shanghai+"血,剩余"+hero.getHp()+"血");
}
@Override
public String toString() {
return "Hero{" +
"name='" + name + '\'' +
", hp=" + hp +
", ac=" + ac +
", ap=" + ap +
", ad=" + ad +
", grade=" + grade +
", exp=" + exp +
", money=" + money +
'}';
}
public Monster() {
}
public Monster(String name, int hp, int ac, int ap, int ad, int grade, int exp, int money) {
this.name = name;
this.hp = hp;
this.ac = ac;
this.ap = ap;
this.ad = ad;
this.grade = grade;
this.exp = exp;
this.money = money;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getHp() {
return hp;
}
public void setHp(int hp) {
this.hp = hp;
}
public int getAc() {
return ac;
}
public void setAc(int ac) {
this.ac = ac;
}
public int getAp() {
return ap;
}
public void setAp(int ap) {
this.ap = ap;
}
public int getAd() {
return ad;
}
public void setAd(int ad) {
this.ad = ad;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public int getExp() {
return exp;
}
public void setExp(int exp) {
this.exp = exp;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
}
public class Test {
public static void main(String[] args) {
new Game().start();
}
}