• 周五. 4 月 24th, 2026

物嫩软件资讯网

软件资讯来物嫩

Java文字版格斗游戏

admin@wunen

4 月 22, 2025

格斗游戏,游戏角色的姓名,血量,都不相同,在选定人物的时候(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了怪兽

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注