面向对象练习:简单的文字游戏(二)

题目:

代码:

方法类:自己加了点东西

public class Text {
    private String name;
    private int  blood;
    private char gender;
    private String face;//随机长相
    private String skill;
    String[]boyfaces={"剑眉星眸","清新俊逸","风流倜傥","玉树临风","潇洒英俊","淡定优雅","飘逸宁人","气宇轩昂","仪表堂堂","掷果盈车","威风凛凛","眉清目秀","相貌堂堂","英俊潇洒","风度翩翩"};
    String[]girlfaces={"美如冠玉","冰清玉洁","明眸皓齿","沉鱼落雁"};
    String[]skills={"黑暗","光明","火","水","冰","土"};
    //%s占位符
    //攻击描述
    String[] attacks_desc={
            "%s使出了一招【背心钉】,转到对方的身后,一掌向%s背心的灵台穴拍去。",
            "%s使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向%s。",
            "%s大喝一声,身形下伏,一招【劈雷坠地】,摊向%s双腿。",
            "%s运气于掌,一瞬间掌心变得血红,一式【掌心围】,推向%s。",
            "%s阴手翻起阳手跟进,一招【没遮拦】,结结实实的摊向%s。",
            "%s上步抢身,招中套招,一招【劈挂连环】,连环攻向%s。"
    };
    //受伤描述
    String[] injureds_desc={
            "结果%s退了半步,毫发无损",
            "结果给%s造成一处察伤",
            "结果一击命中,%s痛得弯下腰",
            "结果%s痛苦地闷哼了一声,显然受了点内伤",
            "结果%s摇摇晃晃,一跤摔倒在地",
            "结果%s脸色一下变得惨白,连退了好几步",
            "结果『轰」的一声,%s日中鲜血狂喷而出",
            "结果%s一声惨叫,像滩软泥般塌了下去"
    };
    public Text() {
    }

    public Text(String name,int blood, char gender, String skill) {
        this.blood = blood;
        this.gender = gender;
        this.face = face;
        this.skill=skill;
        setFace(gender);//根据性别判断
    }

    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 char getGender() {
        return gender;
    }
    public void setGender(char gender) {
        this.gender = gender;
    }
    public String getFace() {
        Random a = new Random();
        if (gender=='男'){
            int index=a.nextInt(boyfaces.length);//随机数
            this.face=boyfaces[index];//开始随机
        }else if (gender=='女'){
            int index=a.nextInt(girlfaces.length);//随机数
            this.face=girlfaces[index];
        }
        return face;
    }
    public void setFace(char gender) {//根据性别判断
        this.face = face;
    }
    public String getSkill() {
        Random b = new Random();
        int index=b.nextInt(skills.length);
        this.skill=skills[index];
        return skill;
    }
    public void setSkill(String skill) {
        this.skill = skill;
    }
    //攻击
   public void attack(Text role){
        Random r = new Random();
       int index=r.nextInt(attacks_desc.length);//随机
       String KungFu=attacks_desc[index];
       System.out.printf(KungFu,this.getName(),role.getName());//随机招式
       System.out.println();
       //随机伤害 随机数
       int hurt=r.nextInt(20)+1;
       //还剩血量
       int Remaining=getBlood()-hurt;
       Remaining=Remaining<0?0:Remaining;
       setBlood(Remaining);
       if (Remaining>90){//血量
           System.out.printf(injureds_desc[0],role.getName());
       }else if (Remaining>80&&Remaining<=90){
           System.out.printf(injureds_desc[1],role.getName());
       }else if (Remaining>70&&Remaining<=80){
           System.out.printf(injureds_desc[2],role.getName());
       }else if (Remaining>60&&Remaining<=70){
           System.out.printf(injureds_desc[3],role.getName());
       }else if (Remaining>40&&Remaining<=60){
           System.out.printf(injureds_desc[4],role.getName());
       }else if (Remaining>20&&Remaining<=40){
           System.out.printf(injureds_desc[5],role.getName());
       }else if (Remaining>10&&Remaining<=20){
           System.out.printf(injureds_desc[6],role.getName());
       }else {
           System.out.printf(injureds_desc[7],role.getName());
       }
       System.out.println();
   }
   public void Appearance(){
       System.out.println("姓名为:"+getName());
       System.out.println("血量为:"+getBlood());
       System.out.println("性别为:"+getGender());
       System.out.println("长相为:"+getFace());
       System.out.println("技能为:"+getSkill());
   }
}

 测试类:

public class Main {
    public static void main(String[] args) {
        Text A = new Text();
        A.setName("小寒");
        A.setBlood(100);
        A.setGender('男');
        Text B = new Text();
        B.setName("小米");
        B.setBlood(100);
        B.setGender('女');
        A.Appearance();
        B.Appearance();
        while (true){
            A.attack(B);
            if (B.getBlood()==0){
                System.out.println(A.getName()+"KO"+B.getName());
                break;
            }
            B.attack(A);
            if (A.getBlood()==0){
                System.out.println(B.getName()+"KO"+A.getName());
                break;
            }
        }
    }
}

输出样例:

姓名为:小寒
血量为:100
性别为:男
长相为:仪表堂堂
技能为:黑暗
姓名为:小米
血量为:100
性别为:女
长相为:冰清玉洁
技能为:水
小寒运气于掌,一瞬间掌心变得血红,一式【掌心围】,推向小米。
结果给小米造成一处察伤
小米使出了一招【背心钉】,转到对方的身后,一掌向小寒背心的灵台穴拍去。
结果给小寒造成一处察伤
小寒使出了一招【背心钉】,转到对方的身后,一掌向小米背心的灵台穴拍去。
结果小米痛苦地闷哼了一声,显然受了点内伤
小米使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向小寒。
结果一击命中,小寒痛得弯下腰
小寒运气于掌,一瞬间掌心变得血红,一式【掌心围】,推向小米。
结果小米摇摇晃晃,一跤摔倒在地
小米大喝一声,身形下伏,一招【劈雷坠地】,摊向小寒双腿。
结果小寒摇摇晃晃,一跤摔倒在地
小寒使出了一招【背心钉】,转到对方的身后,一掌向小米背心的灵台穴拍去。
结果小米摇摇晃晃,一跤摔倒在地
小米阴手翻起阳手跟进,一招【没遮拦】,结结实实的摊向小寒。
结果小寒摇摇晃晃,一跤摔倒在地
小寒使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向小米。
结果小米脸色一下变得惨白,连退了好几步
小米上步抢身,招中套招,一招【劈挂连环】,连环攻向小寒。
结果小寒脸色一下变得惨白,连退了好几步
小寒使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向小米。
结果『轰」的一声,小米日中鲜血狂喷而出
小米大喝一声,身形下伏,一招【劈雷坠地】,摊向小寒双腿。
结果小寒脸色一下变得惨白,连退了好几步
小寒使出了一招【背心钉】,转到对方的身后,一掌向小米背心的灵台穴拍去。
结果小米一声惨叫,像滩软泥般塌了下去
小米使出了一招【背心钉】,转到对方的身后,一掌向小寒背心的灵台穴拍去。
结果『轰」的一声,小寒日中鲜血狂喷而出
小米KO小寒 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值