环境如下:
回合制对战游戏:奥特曼和小怪兽进行PK,直到一方的血量为0时,结束战斗输出谁胜利了。
分析:奥特曼和怪兽属于characters类的对象automan和monster。
定义该类的成员变量cname,blood;
以及方法名attack()
完整的类定义如下:
public class characters{
public String cname; //对象姓名属性
public double blood; //对象血量属性
public boolean attack(characters enemy){ //攻击行为
//产生一个随机数作为每次攻击的血量
double re;
re = (double)Math.random()*10;
enemy.blood -= re;
//攻击后的敌人剩余血量
System.out.println(enemy.cname + "的剩余血量为" + enemy.blood);
//有一方血量为负时攻击游戏结束
if(enemy.blood<0){
System.out.println("随着" + cname + "的攻击," + enemy.cname + "被打死了,哈哈哈!!!");
return true;
}
else return false;
}
}
下面定义战斗过程的类Fight
包含入口函数main()
public class Fight{
public static void main(String [] args){
//定义对象cautoman和cmonster并赋值
characters cautoman = new characters();
characters cmonster = new characters();
cautoman.cname = "automan";
cautoman.blood = 50;
cmonster.cname = "monster";
cmonster.blood = 45;
//开始进行攻击行为知道有一方血量为负,结束攻击。
while(true){
if(cautoman.attack(cmonster)) break;
else if(cmonster.attack(cautoman)) break;
else continue;
}
}
}
贴一张在cmd中运行的截图: