文字版格斗游戏

格斗游戏,每个游戏角色的姓名,血量,都不相同,在选定人物的时候(new对象的时候),这些信息就应该被确定下来。

目录:

GeDoTest类是测试类

 

Role类:

package test02_gedo;

import java.util.Random;

public class Role {
    //定义成员变量名字、血量
    private String name;
    private int blood;
    //attack 攻击描述:
    String[] attacks_desc={
            "%s使出了一招【背心钉】,转到对方的身后,一掌向%s背心的灵台穴拍去。",
            "%s使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向%s。",
            "%s大喝一声,身形下伏,一招【劈雷坠地】,捶向%s双腿。",
            "%s运气于掌,一瞬间掌心变得血红,一式【掌心雷】,推向%s。",
            "%s阴手翻起阳手跟进,一招【没遮拦】,结结实实的捶向%s。",
            "%s上步抢身,招中套招,一招【劈挂连环】,连环攻向%s。"
    };

    //injured 受伤描述:
    String[] injureds_desc={
            "结果%s退了半步,毫发无损",
            "结果给%s造成一处瘀伤",
            "结果一击命中,%s痛得弯下腰",
            "结果%s痛苦地闷哼了一声,显然受了点内伤",
            "结果%s摇摇晃晃,一跤摔倒在地",
            "结果%s脸色一下变得惨白,连退了好几步",
            "结果『轰』的一声,%s口中鲜血狂喷而出",
            "结果%s一声惨叫,像滩软泥般塌了下去"
    };

    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 gedo(Role role){
        Random r=new Random();
        //随机生成attacks_desc的索引
        int number=r.nextInt(attacks_desc.length);
        //定义攻击描述
        String kunfu=attacks_desc[number];
        //souf中%s是占位,需要填充
        System.out.printf(kunfu,this.getName(),role.getName());
        //换行
        System.out.println();
        //随机生成1-20的伤害
        int hurt=r.nextInt(20)+1;
        //定义剩余血量
        int reblood=role.getBlood()-hurt;
        //判断,如果剩余血量小于0(负数),就变为0
        reblood=reblood<0?0:reblood;
        //修改剩余血量
        role.setBlood(reblood);
        //判断,被攻击者的状态
        if(reblood>90){
            System.out.printf(injureds_desc[0],role.getName());
        }else if(reblood>80){
            System.out.printf(injureds_desc[1],role.getName());
        }else if(reblood>70){
            System.out.printf(injureds_desc[2],role.getName());
        }else if(reblood>60){
            System.out.printf(injureds_desc[3],role.getName());
        }else if(reblood>40){
            System.out.printf(injureds_desc[4],role.getName());
        }else if(reblood>20){
            System.out.printf(injureds_desc[5],role.getName());
        }else if(reblood>10){
            System.out.printf(injureds_desc[6],role.getName());
        }else {
            System.out.printf(injureds_desc[7],role.getName());
        }
        System.out.println();



    }
}

GeDoTest类

 

package test02_gedo;

public class GeDoTest {
    public static void main(String[] args) {
        //文字格斗游戏
        //创建对象
        Role r1=new Role("人鱼姬",100);
        Role r2=new Role("呼噜哥",100);
        System.out.println(r1.getName()+"PK"+r2.getName());
        while (true){
            //r1攻击r2
            r1.gedo(r2);
            //如果r2剩余血量为0,r1 KO了 r2
            if(r2.getBlood()==0){
                System.out.println(r1.getName()+"KO了"+r2.getName());
                //结束循环
                break;
            }
            //r2攻击r1
            r2.gedo(r1);
            if(r1.getBlood()==0){
                System.out.println(r2.getName()+"KO了"+r1.getName());
                break;
            }
        }
    }
}

运行结果:

人鱼姬PK呼噜哥
人鱼姬大喝一声,身形下伏,一招【劈雷坠地】,捶向呼噜哥双腿。
结果给呼噜哥造成一处瘀伤
呼噜哥使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向人鱼姬。
结果人鱼姬退了半步,毫发无损
人鱼姬使出了一招【背心钉】,转到对方的身后,一掌向呼噜哥背心的灵台穴拍去。
结果一击命中,呼噜哥痛得弯下腰
呼噜哥使出了一招【背心钉】,转到对方的身后,一掌向人鱼姬背心的灵台穴拍去。
结果人鱼姬退了半步,毫发无损
人鱼姬使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向呼噜哥。
结果呼噜哥摇摇晃晃,一跤摔倒在地
呼噜哥阴手翻起阳手跟进,一招【没遮拦】,结结实实的捶向人鱼姬。
结果给人鱼姬造成一处瘀伤
人鱼姬上步抢身,招中套招,一招【劈挂连环】,连环攻向呼噜哥。
结果呼噜哥脸色一下变得惨白,连退了好几步
呼噜哥使出了一招【背心钉】,转到对方的身后,一掌向人鱼姬背心的灵台穴拍去。
结果人鱼姬痛苦地闷哼了一声,显然受了点内伤
人鱼姬上步抢身,招中套招,一招【劈挂连环】,连环攻向呼噜哥。
结果呼噜哥脸色一下变得惨白,连退了好几步
呼噜哥使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向人鱼姬。
结果人鱼姬摇摇晃晃,一跤摔倒在地
人鱼姬大喝一声,身形下伏,一招【劈雷坠地】,捶向呼噜哥双腿。
结果呼噜哥脸色一下变得惨白,连退了好几步
呼噜哥大喝一声,身形下伏,一招【劈雷坠地】,捶向人鱼姬双腿。
结果人鱼姬摇摇晃晃,一跤摔倒在地
人鱼姬运气于掌,一瞬间掌心变得血红,一式【掌心雷】,推向呼噜哥。
结果『轰』的一声,呼噜哥口中鲜血狂喷而出
呼噜哥阴手翻起阳手跟进,一招【没遮拦】,结结实实的捶向人鱼姬。
结果人鱼姬摇摇晃晃,一跤摔倒在地
人鱼姬大喝一声,身形下伏,一招【劈雷坠地】,捶向呼噜哥双腿。
结果『轰』的一声,呼噜哥口中鲜血狂喷而出
呼噜哥使出了一招【背心钉】,转到对方的身后,一掌向人鱼姬背心的灵台穴拍去。
结果人鱼姬脸色一下变得惨白,连退了好几步
人鱼姬阴手翻起阳手跟进,一招【没遮拦】,结结实实的捶向呼噜哥。
结果『轰』的一声,呼噜哥口中鲜血狂喷而出
呼噜哥使出了一招【背心钉】,转到对方的身后,一掌向人鱼姬背心的灵台穴拍去。
结果人鱼姬脸色一下变得惨白,连退了好几步
人鱼姬运气于掌,一瞬间掌心变得血红,一式【掌心雷】,推向呼噜哥。
结果呼噜哥一声惨叫,像滩软泥般塌了下去
呼噜哥使出了一招【背心钉】,转到对方的身后,一掌向人鱼姬背心的灵台穴拍去。
结果『轰』的一声,人鱼姬口中鲜血狂喷而出
人鱼姬运气于掌,一瞬间掌心变得血红,一式【掌心雷】,推向呼噜哥。
结果呼噜哥一声惨叫,像滩软泥般塌了下去
人鱼姬KO了呼噜哥

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值