1、实验要求
本实验要求:随机实现"泰坦"与"宙斯"之间的模拟交战。
1-1.
业务说明:
1-1.1.
本实验以希腊神话中宙斯和泰坦间的交战为业务背景。
1-1.2.
设宙斯初始血量为:1000,每次攻击伤害在:0~70范围内。
1-1.3.
设泰坦初始血量为:700,每次攻击伤害在:0~100范围内。
1-1.4.
宙斯先攻击泰坦,泰坦反击,直到一方死亡(血量小于等于0)为止。
1-2.
创建工程并配置环境:
1-2.1.
限制1. 工程取名:SE_JAVA_EXP_E027。
1-2.2. 限制2.
创建包,取名:cn.campsg.java.experiment。
1-2.3. 限制3.
创建实体类包,取名:cn.campsg.java.experiment.entity。
1-3.
创建实体类:
1-3.1. 限制1.
在包cn.campsg.java.experiment.entity下创建实体类:Taitan。
1-3.2.
为泰坦实体类创建属性,血量:整数类型,默认值700。
1-3.3.
创建血量属性的getter和setter方法。
1-3.4. 限制2.
在包cn.campsg.java.experiment.entity下创建实体类:Zeus。
1-3.5.
为宙斯实体类创建属性,血量:整数类型,默认值1000。
1-3.6.
创建血量属性的getter和setter方法。
1-4.
创建交战函数:
1-4.1.
限制1:为泰坦实体添加攻击函数,函数名:attack,含1个参数:宙斯。
1-4.2.
函数随机产生0~100间的随机攻击值,并攻击宙斯实体(参数)。
1-4.3.
受到攻击的宙斯实体(参数)需要扣除对应的血量。
1-4.4.
扣除血量后,向控制台输出:"泰坦攻击宙斯,宙斯扣血:"
+ 攻击值
+
",剩余:"
+ 宙斯的血量属性。
1-4.5.
限制2:为宙斯实体添加攻击函数,函数名attack,含1个参数:泰坦。
1-4.6.
函数随机产生0~70间的随机攻击值,并攻击泰坦实体(参数)。
1-4.7.
受到攻击的泰坦实体(参数)需要扣除对应的血量。
1-4.8.
扣除血量后,向控制台输出:"宙斯攻击泰坦,泰坦扣血:"
+ 攻击值
+
",剩余:"
+ 泰坦的血量属性。
1-5.
实现"泰坦"与"宙斯"之间的模拟交战:
1-5.1. 限制1.
在包cn.campsg.java.experiment下创建主类:MainClass。
1-5.2. 限制2.
编写模拟交战函数,函数名:attack,含2个参数:宙斯、泰坦。
1-5.3.
该函数需要确保:宙斯和泰坦持续交战,直到一方血量小于等于0。
1-5.4.
首先由宙斯攻击泰坦,随后泰坦攻击宙斯。
1-5.5.
攻击后,任意一方血量小于等于0,均向控制台输出:"A死亡,B获胜"
(A为血量小于等于0的一方,B为获胜方)。
1-5.6.
退出模拟交战。
2、实现思路
2-1.
按实验要求创建工程并配置环境。
2-2.
创建宙斯实体类(Zeus):
2-2.1. 在包cn.campsg.java.experiment.entity下创建实体类:Zeus。
2-2.2. 定义私有的成员变量,血量:int
blood,默认值1000。
2-2.3.
为成员变量(blood)添加setter和getter方法。
2-3.
创建泰坦实体类(Taitan):
2-3.1. 在包cn.campsg.java.experiment.entity下创建实体类:Taitan。
2-3.2. 定义私有的成员变量,血量:int
blood,默认值700。
2-3.3.
为成员变量(blood)添加setter和getter方法。
2-4.
创建宙斯(Zeus)的交战函数:
2-4.1.
定义并实现宙斯交战函数,形式如下:
+提示
publicvoidattack(Taitantaitan)
{
}
2-4.2.
调用随机函数生成攻击伤害,随机范围:0 ~ 70。
2-4.3. 修改泰坦的血量:血量 = 血量 –
宙斯的攻击伤害。
2-4.4.
扣除血量后,向控制台输出:"宙斯攻击泰坦,泰坦扣血:"
+ 攻击伤害
+ ",剩余:"
+ 泰坦的血量属性。
2-5.
创建泰坦(Taitan)的交战函数:
2-5.1.
定义并实现泰坦交战函数,形式如下:
+提示
publicvoidattack(Zeuszeus)
{
}
2-5.2.
调用随机函数生成攻击伤害,随机范围:0 ~ 100。
2-5.3. 修改宙斯的血量:血量 = 血量 –
泰坦的攻击伤害。
2-5.4.
扣除血量后,向控制台输出:"泰坦攻击宙斯,宙斯扣血:"
+ 攻击伤害
+ ",剩余:"
+ 宙斯的血量属性。
2-6.
实现"泰坦"与"宙斯"之间的模拟交战:
2-6.1. 在包cn.campsg.java.experiment下创建主类:MainClass。
2-6.2.
定义并实现模拟交战函数,形式如下:
+提示
publicstaticvoidattack(Zeuszeus,Taitantaitan){
}
2-6.3.
通过do-while循环,确保宙斯和泰坦持续交战,直到一方血量小于等于0。
1)do-while循环持续运行的条件为:泰坦和宙斯的血量均大于0
。
2-6.4.
在循环中,首先宙斯对象通过调用attack攻击泰坦。
2-6.5.
若泰坦血量小于等于0,向控制台输出:"泰坦死亡,宙斯获胜",循环终止。
2-6.6.
随后,泰坦对象通过调用attack攻击宙斯。
2-6.7.
若宙斯血量小于等于0,向控制台输出:"宙斯死亡,泰坦获胜",循环终止。
2-6.8.
测试模拟攻击函数:
1)在MainClass类中编写程序入口函数(main)。
2)分别创建宙斯和泰坦对象。
3)调用attack模拟攻击函数,并传入宙斯和泰坦对象。
————————————————————————————————————————
package cn.campsg.java.experiment;
import
cn.campsg.java.experiment.entity.Taitan;
import
cn.campsg.java.experiment.entity.Zeus;
public class MainClass {
public static void attack(Zeus zeus,Taitan
taitan){
while(taitan.getblood()>0||zeus.getblood()>0)
{
zeus.attack(taitan);
if(taitan.getblood()<=0) {
System.out.println("泰坦死亡,宙斯获胜");
break;
}
taitan.attack(zeus);
if(zeus.getblood()<=0) {
System.out.println("宙斯死亡,泰坦获胜");
break;
}
}
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
Zeus zeus = new Zeus();
Taitan taitan = new Taitan();
MainClass.attack(zeus, taitan);
}
}
——————————————————————————————————————————————
package cn.campsg.java.experiment.entity;
public class Zeus {
int blood = 1000 ;
public void setblood(int blood) {
this.blood=blood;
}
public int getblood() {
return blood;
}
public void attack(Taitan taitan) {
int HP =(int)(Math.random()*70);
taitan.setblood(taitan.getblood()-HP);
System.out.println("宙斯攻击泰坦,泰坦扣血"+HP+",剩余"+taitan.getblood());
}
}
——————————————————————————————————————————————
package cn.campsg.java.experiment.entity;
public class Taitan {
int blood = 700;
public void setblood(int blood) {
this.blood=blood;
}
public int getblood() {
return blood;
}
public void attack(Zeus zeus) {
int HP =(int)(Math.random()*70);
zeus.setblood(zeus.getblood()-HP);
System.out.println("泰坦攻击宙斯,宙斯扣血"+HP+",剩余"+zeus.getblood());
}
}