游戏说明:
回合制游戏
- 输出:
======== 第X回合 ========
XXX凹凸曼 血量XXX
30% 60% 10%
使用了 魔法攻击全体/普攻,XXX小怪兽/必杀,XXX小怪兽
XXX小怪兽 血量XXX
XXX小怪兽 血量XXX
XXX小怪兽 血量XXX
XXX小怪兽 血量XXX
小怪兽使用了普攻
- 结果:
凹凸曼血量为0,小怪兽胜利
所有的小怪兽都死了,凹凸曼胜利
- 要求:
凹凸曼 普攻和必杀不能攻击死了小怪兽 随机
魔法无所谓 小怪兽的血量不能出现负数 0
小怪兽 死了小怪兽不能攻击 0
凹凸曼实体类
public class Ultraman {
private String name;
private int hp;
public Ultraman() {
super();
}
public Ultraman(String name, int hp) {
super();
this.name = name;
this.hp = hp;
}
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;
}
@Override
public String toString() {
return name+"凹凸曼,"+"血量"+hp;
}
//普通攻击
public void Attack(Monster m) {
int injury = (int)(Math.random()*10+30);
int hp = m.getHp();
hp -= injury;
if(hp>=0) {
m.setHp(hp);
}else {
m.setHp(0);
}
}
//必杀攻击
public void HugeAttack(Monster m) {
//做一个伤害
int injury = (int) (m.getHp() > 50 ? m.getHp()*0.85 : m.getHp()*0.95);
m.setHp(m.getHp() - injury);
}
//魔法
public void MagicAttack(Monster[] m) {
for(Monster monster : m) {
int hp = monster.getHp();
hp -= 35;
if(hp>=0) {
monster.setHp(hp);
}else {
monster.setHp(0);
}
}
}
}
怪兽实体类:
public class Monster {
private String name;
private int hp;
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 Monster() {
}
public Monster(String name, int hp) {
super();
this.name = name;
this.hp = hp;
}
@Override
public String toString() {
return name+"小怪兽 血量"+hp;
}
public void Attack(Ultraman u) {
//做一个伤害
int injury = (int)(Math.random()*10);
//获取奥特曼的血量
int hp = u.getHp();
hp -= injury;
//血量为0时怎么办
if(hp>=0) {
u.setHp(hp);
}else {
u.setHp(0);
}
}
}
实战类
public class Fight {
public static void main(String[] args) {
Ultraman ultraman = new Ultraman("QC", 200);
Monster[] monsters = new Monster[3];
monsters[0] = new Monster("NO1", 100);
monsters[1] = new Monster("NO2", 100);
monsters[2] = new Monster("NO3", 100);
int n = 1;
while(true) {
System.out.println("=============第"+n+"回合=============");
if(ultraman.getHp() == 0) {
System.out.println("小怪兽胜利");
break;
}else if (monsters[0].getHp() == 0 && monsters[1].getHp() == 0 && monsters[2].getHp() == 0) {
System.out.println("凹凸曼胜利");
break;
}
else {
System.out.println(ultraman.toString());
double key = Math.random();
if(key >= 0.0 && key <= 0.6) {
while(monsters[(int)Math.random()*3].getHp() != 0) {
ultraman.Attack(monsters[(int)Math.random()*3]);
System.out.println(ultraman+"凹凸曼对"+monsters[(int)Math.random()*3].getName()
+"小怪兽使用了普通攻击");
break;
}
}else if (key > 0.6 && key <= 0.7) {
while(monsters[(int)Math.random()*3].getHp() != 0) {
ultraman.HugeAttack(monsters[(int)Math.random()*3]);
System.out.println(ultraman+"凹凸曼对"+monsters[(int)Math.random()*3].getName()
+"小怪兽使用了必杀");
break;
}
}else if (key > 0.7 && key < 1.0) {
ultraman.MagicAttack(monsters);
System.out.println(ultraman+"凹凸曼对所有小怪兽使用了魔法攻击");
}
System.out.println(monsters[0].toString());
System.out.println(monsters[1].toString());
System.out.println(monsters[2].toString());
monsters[0].Attack(ultraman);
monsters[1].Attack(ultraman);
monsters[2].Attack(ultraman);
System.out.println("小怪兽对凹凸曼使用了普攻\n");
n++;
}
}
}
}