题目要求:
随机实现“泰坦”与“宙斯”之间的模拟交战。说明:本题以希腊神话中宙斯和泰坦间的交战为背景。
(1)分别建立宙斯和泰坦类,两个类都有属性“血量”, 设宙斯初始血量为1000,设泰坦初始血量为700。
(2)都有交战的方法:泰坦交战方法的参数是宙斯,随机生成0~100间的攻击值,受到攻击的宙斯的血量要相应扣除,
然后输出“泰坦攻击宙斯,宙斯扣除血量”+攻击值+“剩余血量”+宙斯的血量。
(3)宙斯交战的方法和泰坦一样,只是参数为泰坦,攻击值在0~70之间。
(4)编写测试类,并在该类中编写双方交战方法,该方法有两个参数:宙斯和泰坦。
该方法要实现双方要持续交战,直到一方血量小于或等于0。首先由宙斯攻击泰坦,随后泰坦攻击宙斯。
攻击后,任意一方血量小于0或等于0,均输出“A死亡,B获胜”(A为血量小于或等于0的一方,B为获胜方)。退出模拟交战。
读完这个题目,不由自主的想起了洛克王国和赛尔号
咳咳,言归正传,学习要紧
不要看题目很长,但是一步一步的拆分,你会发现这个题很简单
也不要看下面的代码长,因为生成了get、set方法,显着代码长,其实删去就没什么东西了
public class Text_3 {
public static void main(String[] args) {
ZhouShi z = new ZhouShi("宙斯") ;
TaiTan t = new TaiTan("泰坦") ;
int i = 1 ;
double b1 = z.fight("泰坦", i) ;
double b2 = t.fight("宙斯", i) ;
while(b1 > 0 && b2 > 0 ) {
i++ ;
b1 = z.fight("泰坦", i) ;
b2 = t.fight("宙斯", i) ;
}
if(b1>0)
System.out.println(t.getName()+"死亡,"+z.getName()+"获胜");
else
System.out.println(z.getName()+"死亡,"+t.getName()+"获胜");
}
}
class ZhouShi{
private static double blood = 1000 ;
private String name ;
public ZhouShi(String name) {
super();
this.name = name;
}
public double fight (String name,int i) {
System.out.println("第"+i+"回合:"+name+"攻击"+this.name+" : " );
double hurt = Math.random()*101 ;
blood -= hurt ;
if(blood>=0)
System.out.println(this.name+"受到了 "+hurt+" 点伤害"+"\t剩余血量:"+blood);
else
System.out.println(this.name+"受到了 "+hurt+" 点伤害"+"\t剩余血量:"+0);
return blood ;
}
public static double getBlood() {
return blood;
}
public static void setBlood(double blood) {
ZhouShi.blood = blood;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class TaiTan{
private static double blood = 700 ;
private String name ;
public TaiTan(String name) {
super();
this.name = name;
}
public double fight (String name,int i) {
System.out.println("第"+i+"回合:"+name+"攻击"+this.name+" : " );
double hurt = Math.random()*71 ;
blood -= hurt ;
if(blood>=0)
System.out.println(this.name+"受到了 "+hurt+" 点伤害"+"\t剩余血量:"+blood);
else
System.out.println(this.name+"受到了 "+hurt+" 点伤害"+"\t剩余血量:"+0);
return blood ;
}
public static double getBlood() {
return blood;
}
public static void setBlood(double blood) {
TaiTan.blood = blood;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
一次就掉那么一点血,打了个几乎20回合,玩起游戏来,玩家早就跑光了
所以啊,可以将上面的随机数改大一点,这样回合数就会少了,看起来也方便