格斗游戏,游戏角色的姓名,血量,都不相同,在选定人物的时候(new对象时),这些信息就应该被确定下来.确定哪位英雄先发动攻击,受伤血量也会打印出来,直到某一方英雄的血量清空则战斗结束。
JavaBean类:
package liang.bo.xu;
import java.util.Random;
public class Role {
private String name;
private int blood;
public Role() {
}
public Role(String name, int blood) {
this.name = name;
this.blood = blood;
}
/**
* 获取
* @return name
*/
public String getName() {
return name;
}
/**
* 设置
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 获取
* @return blood
*/
public int getBlood() {
return blood;
}
/**
* 设置
* @param blood
*/
public void setBlood(int blood) {
this.blood = blood;
}
public void attack(Role role){
Random r=new Random();
int hurt=r.nextInt(20)+1;
int remainblood=role.getBlood()-hurt;
remainblood=remainblood<0?0:remainblood;
role.setBlood(remainblood);
System.out.println(this.getName() + "打了" + role.getName() + "一拳," + role.getName() + "受到了" +" "+hurt+" " + "点伤害,"+role.getName()+"还剩余" +" "+ role.getBlood()+" " + "点血量。");
}
}
每次打1~20之内的随机血量,如果血量为零则强制设置为0
测试类:
package liang.bo.xu;
public class Game {
public static void main(String[] args) {
Role r1=new Role("迪迦",100);
Role r2=new Role("怪兽",100);
while(true){
r1.attack(r2);
if(r2.getBlood()==0){
System.out.println(r1.getName()+"K.O了"+r2.getName());
break;
}
r2.attack(r1);
if(r1.getBlood()==0){
System.out.println(r2.getName()+"K.O了"+r1.getName());
break;
}
}
}
}
运行结果:
迪迦打了怪兽一拳,怪兽受到了 20 点伤害,怪兽还剩余 80 点血量。
怪兽打了迪迦一拳,迪迦受到了 9 点伤害,迪迦还剩余 91 点血量。
迪迦打了怪兽一拳,怪兽受到了 16 点伤害,怪兽还剩余 64 点血量。
怪兽打了迪迦一拳,迪迦受到了 10 点伤害,迪迦还剩余 81 点血量。
迪迦打了怪兽一拳,怪兽受到了 19 点伤害,怪兽还剩余 45 点血量。
怪兽打了迪迦一拳,迪迦受到了 4 点伤害,迪迦还剩余 77 点血量。
迪迦打了怪兽一拳,怪兽受到了 11 点伤害,怪兽还剩余 34 点血量。
怪兽打了迪迦一拳,迪迦受到了 1 点伤害,迪迦还剩余 76 点血量。
迪迦打了怪兽一拳,怪兽受到了 20 点伤害,怪兽还剩余 14 点血量。
怪兽打了迪迦一拳,迪迦受到了 20 点伤害,迪迦还剩余 56 点血量。
迪迦打了怪兽一拳,怪兽受到了 2 点伤害,怪兽还剩余 12 点血量。
怪兽打了迪迦一拳,迪迦受到了 18 点伤害,迪迦还剩余 38 点血量。
迪迦打了怪兽一拳,怪兽受到了 18 点伤害,怪兽还剩余 0 点血量。
迪迦K.O了怪兽