用java代码实现文字格斗游戏,代码效果为:xxx攻击了xxx一下,造成了...点伤害,xxx还剩下...点血量。
package hello.self.one.test4;
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;
}
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 role){
//获得一个随机数作为伤害值
Random Hurt = new Random();
int hurt=Hurt.nextInt(15)+5;
//计算剩余血量
int nextblood=role.getBlood()-hurt;
nextblood=nextblood>0?nextblood:0;
role.setBlood(nextblood);
System.out.println(this.name+"打了"+role.getName()+"一下,造成了"+hurt+"点伤害,"+
role.getName()+"还剩下"+nextblood+"点血量");
}
}
先创建Role类,定义成员变量,成员方法,通过获取一个5-20的随机数做为伤害值,用 nextblood保存剩余血量,并用三目运算符保证剩余血量不会为负数。
package hello.self.one.test4;
public class RoleTest {
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()+"打败了"+r2.getName());
break;
}
r2.attack(r1);
if(r1.getBlood()==0){
System.out.println(r2.getName()+"打败了"+r1.getName());
break;
}
}
}
}
创建Role类的r1、r2对象,并传值,自动调用有参构造方法。通过while循环实现回合制攻击,当 其中某一对象血量值为0时结束循环。
运行结果如图所示: