文字版格斗游戏
- 定义角色(Role)类,成员变量中定义姓名(name),血量(blood或hp(horsepower)),属性私有,生成空参、有参构造方法,生成set/get方法;
- 定义测试类,在main方法中创建该类的对象并给属性赋值(set方法);
- 调用成员方法,打印如下:
郭靖打了欧阳克一拳,造成失血XX点,欧阳克还剩XX点血。
欧阳克打了郭靖一拳,造成失血XX点,郭靖还剩XX点血。
郭靖(欧阳克)K.O.了欧阳克(郭靖)。
代码如下:
//RoleTest类
package pro1;
public class RoleTest {
public static void main(String[] args) {
Role role1 = new Role("郭靖",100);
Role role2 = new Role("欧阳克",100);
while(true) {
role1.attack(role2);
if(role2.getBlood()==0) {
System.out.println(role1.getName()+"K.O.了"+role2.getName());
break;
}
role2.attack(role1);
if(role1.getBlood() == 0) {
System.out.println(role2.getName()+"K.O.了"+role1.getName());
break;
}
}
}
}
//Role类
package pro1;
public class Role {
private String name;
private int blood;
public Role() {
this.name = "";
this.blood = 0;
}
public Role(String name,int blood) {
this.name = name;
this.blood = blood;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getBlood() {
return blood;
}
public void setBlood(int blood) {
this.blood = blood;
}
public void attack(Role attackee) {
int damage = (int)(Math.random()*20)+1;
int remain = attackee.getBlood() - damage;
remain= remain < 0?0:remain;
attackee.setBlood(remain);
System.out.println(this.name+"打了"+attackee.getName()+"一拳,造成失血" + damage+"点,"+attackee.getName()+"还剩"+attackee.getBlood()+"点血");
}
}