Java根本 --- 面向对象综合训练

打印 上一主题 下一主题

主题 897|帖子 897|积分 2691

面向对象综合训练

案例一:文字版格斗游戏

格斗游戏,每个游戏脚色的姓名,血量,都不雷同,在选定人物的时候(new对象的时候),这些信息就应该被确定下来。
补充:
  1. public class Test {
  2.     public static void main(String[] args) {
  3.         //两部分参数
  4.         //第一部分参数:要输出的内容%s(占位)
  5.         //第二部分参数:填充的数据
  6.         System.out.printf("你好啊%s","张三");
  7.         System.out.println();//printf无法换行,这里做换行处理
  8.         System.out.printf("%s你好啊%s","张三","李四");
  9.     }
  10. }
复制代码
正题:
[code]import java.util.Random;public class Role {    private String name;    private int blood;    private char gender;    private String face;//长相是随机的    String[] boyfaces = {"风流俊雅","器宇轩昂","相貌英俊","五官端正","相貌平平","一塌糊涂","面目狰狞"};    String[] girlfaces = {"美奂绝伦","沉鱼落雁","亭亭玉立","身段姣好","相貌平平","相貌大略","惨不忍睹"};    //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,char gender){        this.name = name;        this.blood = blood;        this.gender = gender;        //随机长相        setFace(gender);    }    public char getGender(){        return gender;    }    public void setGender(char gender){        this.gender = gender;    }    public String getFace(){        return face;    }    public void setFace(char gender){        Random r = new Random();        //长相是随机的        if(gender == '男'){            //从boyfaces里面随机            int index = r.nextInt(boyfaces.length);            this.face = boyfaces[index];        } else if (gender == '女') {            //从girlfaces里面随机            int index = r.nextInt(girlfaces.length);            this.face = girlfaces[index];        }else{            this.face = "相貌平平";        }    }    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 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();        //计算造成的伤害1 ~ 20        int hurt = r.nextInt(1,21);        //修改一下挨揍的人的血量        //剩余血量        int remainBlood = role.getBlood() - hurt;        //对剩余血量做一个验证,假如为负数了,就修改为0        remainBlood = remainBlood < 0 ? 0 : remainBlood;        //修改一下挨揍的人的血量        role.setBlood(remainBlood);        //受伤的描述        //血量>90 0索引的描述        //80 ~ 90 1索引的描述        //70 ~ 80 2索引的描述        //60 ~ 70 3索引的描述        //40 ~ 60 4索引的描述        //20 ~ 40 5索引的描述        //10 ~ 20 6索引的描述        //小于10的 7索引的描述        if(remainBlood > 90){            System.out.printf(injureds_desc[0],role.getName());        } else if (remainBlood > 80 && remainBlood  70 && remainBlood  60 && remainBlood  40 && remainBlood  20 && remainBlood  10 && remainBlood
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

老婆出轨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表