用JAVA 编写一个文字版格斗游戏

javabeen代码

import java.util.Random;

public class Roles {
    
    //定义属性
    private String name;
    private int blood;
    private String gander;
    private String face;
    //相貌描述
    String[] boyFace = {"风流倜傥", "英俊潇洒", "才华横溢", "平平无奇", "凶神恶煞", "面目可憎"};
    String[] girlFace = {"惊为天人", "亭亭玉立", "倾国倾城", "平平无奇", "奇丑无比", "不堪入目"};

    //攻击描述
    String[] attackDes = {"%s使用了坤坤的成名绝技“铁山靠”,以迅雷不及掩耳之势撞上了%s",
            "%s使用了“律师函警告”,甩出一张律师函,律师函以雷霆之势冲向%s",
            "%s使用了练习了一坤年的“坤拳”,突然绕到身后,一拳击向%s",
            "%s后退一步,一记“你最好是”识破了%s的招式并对其发出一道音波功击"};
    String[] attackedDes = {"%s后退十步,一口鲜血喷出",
            "%s被击飞数米,翻滚一圈才稳住身形",
            "%s识破意图,向右一闪毫发无伤",
            "%s不慎中招,倒地不省人事"
    };

    //受伤描述
    public Roles(String name, int blood, String gander) {
        this.name = name;
        this.blood = blood;
        this.gander = gander;
        setFace(gander);

    }

    public Roles() {
    }

    public String getFace() {
        return face;
    }

    public void setFace(String gander) {
        Random r = new Random();
        if (gander == "男") {
            int index = r.nextInt(boyFace.length);
            this.face = boyFace[index];
        } else if (gander == "女") {
            int index = r.nextInt(girlFace.length);
            this.face = girlFace[index];
        } else this.face = "平平无奇";
    }
    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public int getBlood() {
        return blood;
    }

    public void setBlood(int blood) {
        this.blood = blood;
    }

    public String getGander() {
        return gander;
    }

    public void setGander(String gander) {
        this.gander = gander;
    }

    //定义行为
    public void attack(Roles role) {
        Random r = new Random();
        int index = r.nextInt(attackDes.length);
        String Kunfu = attackDes[index];
        System.out.printf(Kunfu, this.getName(), role.getName());//随机使用招式
        System.out.println();//换行
        int damage = r.nextInt(0, 10);//随机生成伤害
        int remainBlood = role.getBlood() - damage;//算出剩余血量
        remainBlood = remainBlood > 0 ? remainBlood : 0;//判断剩余血量
        role.setBlood(remainBlood);//修改剩余血量
        //根据伤害使用描述语句
        if (remainBlood == 0) System.out.printf(attackedDes[3], role.getName());
        else if (damage == 0) System.out.printf(attackedDes[2], role.getName());
        else if (damage <= 5 && damage > 0) System.out.printf(attackedDes[1], role.getName());
        else if (damage > 5) System.out.printf(attackedDes[0], role.getName());
        System.out.println();//换行
    }

    //展示人物面板
    public void showRoleInformation() {
        System.out.println("姓名:" + getName());
        System.out.println("血量:" + getBlood());
        System.out.println("性别:" + getGander());
        System.out.println("外貌:" + getFace());
    }
}



测试代码

public class RolesTest {
    public static void main(String[] args) {
        Roles r1=new Roles("坤哥",100,"男");
        Roles r2=new Roles("小黑子",100,"沃尔玛购物袋");
        r1.showRoleInformation();
        r2.showRoleInformation();
        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;
            }
        }
    }
}

运行结果

​
姓名:坤哥
血量:100
性别:男
外貌:才华横溢
姓名:小黑子
血量:100
性别:沃尔玛购物袋
外貌:平平无奇
坤哥后退一步,一记“你最好是”识破了小黑子的招式并对其发出一道音波功击
小黑子被击飞数米,翻滚一圈才稳住身形
小黑子后退一步,一记“你最好是”识破了坤哥的招式并对其发出一道音波功击
坤哥被击飞数米,翻滚一圈才稳住身形
坤哥后退一步,一记“你最好是”识破了小黑子的招式并对其发出一道音波功击
小黑子识破意图,向右一闪毫发无伤
小黑子使用了练习了一坤年的“坤拳”,突然绕到身后,一拳击向坤哥
坤哥被击飞数米,翻滚一圈才稳住身形
坤哥后退一步,一记“你最好是”识破了小黑子的招式并对其发出一道音波功击
小黑子后退十步,一口鲜血喷出
小黑子使用了“律师函警告”,甩出一张律师函,律师函以雷霆之势冲向坤哥
坤哥后退十步,一口鲜血喷出
坤哥使用了练习了一坤年的“坤拳”,突然绕到身后,一拳击向小黑子
小黑子被击飞数米,翻滚一圈才稳住身形
小黑子使用了练习了一坤年的“坤拳”,突然绕到身后,一拳击向坤哥
坤哥识破意图,向右一闪毫发无伤
坤哥使用了坤坤的成名绝技“铁山靠”,以迅雷不及掩耳之势撞上了小黑子
小黑子被击飞数米,翻滚一圈才稳住身形
小黑子后退一步,一记“你最好是”识破了坤哥的招式并对其发出一道音波功击
坤哥被击飞数米,翻滚一圈才稳住身形
坤哥使用了“律师函警告”,甩出一张律师函,律师函以雷霆之势冲向小黑子
小黑子被击飞数米,翻滚一圈才稳住身形
小黑子使用了坤坤的成名绝技“铁山靠”,以迅雷不及掩耳之势撞上了坤哥
坤哥后退十步,一口鲜血喷出
坤哥使用了练习了一坤年的“坤拳”,突然绕到身后,一拳击向小黑子
小黑子被击飞数米,翻滚一圈才稳住身形
小黑子使用了坤坤的成名绝技“铁山靠”,以迅雷不及掩耳之势撞上了坤哥
坤哥被击飞数米,翻滚一圈才稳住身形
坤哥使用了练习了一坤年的“坤拳”,突然绕到身后,一拳击向小黑子
小黑子被击飞数米,翻滚一圈才稳住身形
小黑子后退一步,一记“你最好是”识破了坤哥的招式并对其发出一道音波功击
坤哥后退十步,一口鲜血喷出
坤哥使用了“律师函警告”,甩出一张律师函,律师函以雷霆之势冲向小黑子
小黑子识破意图,向右一闪毫发无伤
小黑子使用了“律师函警告”,甩出一张律师函,律师函以雷霆之势冲向坤哥
坤哥识破意图,向右一闪毫发无伤
坤哥使用了“律师函警告”,甩出一张律师函,律师函以雷霆之势冲向小黑子
小黑子后退十步,一口鲜血喷出
小黑子使用了“律师函警告”,甩出一张律师函,律师函以雷霆之势冲向坤哥
坤哥被击飞数米,翻滚一圈才稳住身形
坤哥使用了“律师函警告”,甩出一张律师函,律师函以雷霆之势冲向小黑子
小黑子被击飞数米,翻滚一圈才稳住身形
小黑子使用了练习了一坤年的“坤拳”,突然绕到身后,一拳击向坤哥
坤哥后退十步,一口鲜血喷出
坤哥使用了“律师函警告”,甩出一张律师函,律师函以雷霆之势冲向小黑子
小黑子后退十步,一口鲜血喷出
小黑子使用了“律师函警告”,甩出一张律师函,律师函以雷霆之势冲向坤哥
坤哥被击飞数米,翻滚一圈才稳住身形
坤哥使用了“律师函警告”,甩出一张律师函,律师函以雷霆之势冲向小黑子
小黑子被击飞数米,翻滚一圈才稳住身形
小黑子使用了坤坤的成名绝技“铁山靠”,以迅雷不及掩耳之势撞上了坤哥
坤哥识破意图,向右一闪毫发无伤
坤哥后退一步,一记“你最好是”识破了小黑子的招式并对其发出一道音波功击
小黑子后退十步,一口鲜血喷出
小黑子使用了“律师函警告”,甩出一张律师函,律师函以雷霆之势冲向坤哥
坤哥被击飞数米,翻滚一圈才稳住身形
坤哥使用了“律师函警告”,甩出一张律师函,律师函以雷霆之势冲向小黑子
小黑子被击飞数米,翻滚一圈才稳住身形
小黑子使用了练习了一坤年的“坤拳”,突然绕到身后,一拳击向坤哥
坤哥被击飞数米,翻滚一圈才稳住身形
坤哥后退一步,一记“你最好是”识破了小黑子的招式并对其发出一道音波功击
小黑子后退十步,一口鲜血喷出
小黑子使用了坤坤的成名绝技“铁山靠”,以迅雷不及掩耳之势撞上了坤哥
坤哥后退十步,一口鲜血喷出
坤哥使用了练习了一坤年的“坤拳”,突然绕到身后,一拳击向小黑子
小黑子被击飞数米,翻滚一圈才稳住身形
小黑子使用了坤坤的成名绝技“铁山靠”,以迅雷不及掩耳之势撞上了坤哥
坤哥后退十步,一口鲜血喷出
坤哥使用了“律师函警告”,甩出一张律师函,律师函以雷霆之势冲向小黑子
小黑子被击飞数米,翻滚一圈才稳住身形
小黑子后退一步,一记“你最好是”识破了坤哥的招式并对其发出一道音波功击
坤哥后退十步,一口鲜血喷出
坤哥使用了“律师函警告”,甩出一张律师函,律师函以雷霆之势冲向小黑子
小黑子被击飞数米,翻滚一圈才稳住身形
小黑子使用了坤坤的成名绝技“铁山靠”,以迅雷不及掩耳之势撞上了坤哥
坤哥后退十步,一口鲜血喷出
坤哥使用了练习了一坤年的“坤拳”,突然绕到身后,一拳击向小黑子
小黑子后退十步,一口鲜血喷出
小黑子使用了练习了一坤年的“坤拳”,突然绕到身后,一拳击向坤哥
坤哥后退十步,一口鲜血喷出
坤哥后退一步,一记“你最好是”识破了小黑子的招式并对其发出一道音波功击
小黑子被击飞数米,翻滚一圈才稳住身形
小黑子后退一步,一记“你最好是”识破了坤哥的招式并对其发出一道音波功击
坤哥后退十步,一口鲜血喷出
坤哥使用了练习了一坤年的“坤拳”,突然绕到身后,一拳击向小黑子
小黑子被击飞数米,翻滚一圈才稳住身形
小黑子使用了坤坤的成名绝技“铁山靠”,以迅雷不及掩耳之势撞上了坤哥
坤哥不慎中招,倒地不省人事
小黑子击败了坤哥

​

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以的,我可以为您提供一个简单的Java文字版格斗游戏的示例代码。以下是一个基本的游戏框架: ```java import java.util.Scanner; public class FightingGame { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("欢迎来到文字版格斗游戏!"); System.out.print("请输入玩家姓名:"); String playerName = scanner.nextLine(); System.out.println("\n游戏开始!"); System.out.println(playerName + " VS 电脑"); // 初始化玩家和电脑的血量 int playerHealth = 100; int computerHealth = 100; // 游戏循环 while (playerHealth > 0 && computerHealth > 0) { System.out.println("\n轮到玩家攻击!"); System.out.print("请输入攻击力(1-20):"); int playerAttack = scanner.nextInt(); // 生成电脑的攻击力 int computerAttack = (int) (Math.random() * 20) + 1; // 更新血量 playerHealth -= computerAttack; computerHealth -= playerAttack; System.out.println("玩家受到了" + computerAttack + "点伤害,剩余血量:" + playerHealth); System.out.println("电脑受到了" + playerAttack + "点伤害,剩余血量:" + computerHealth); } // 判断输赢 if (playerHealth > 0 && computerHealth <= 0) { System.out.println("\n恭喜,玩家获胜!"); } else if (playerHealth <= 0 && computerHealth > 0) { System.out.println("\n很遗憾,电脑获胜!"); } else { System.out.println("\n平局!"); } scanner.close(); System.out.println("\n游戏结束!"); } } ``` 这个简单的游戏允许玩家和电脑进行回合制的攻击,直到其中一方的血量归零。您可以根据需要进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值