欢迎光临散文网 会员登陆 & 注册

黑马程序员Java零基础视频教程_上部(Java入门,含斯坦福大学练习题+力扣算

2023-07-06 16:20 作者:快乐的竹小猪  | 我要投稿

交作业啦啦啦,超级好玩

Main方法

  • package ONE;
import Role.Role;

import java.lang.*;

public class Main {

    public static void main(String[] args) {
        Role role = new Role("鸠摩智", "剑眉星目", true);
        Role role01 = new Role("扫地僧", "弯腰驼背,面容模糊", true);
        Role role02 = new Role("不知水舞", false);
        role01.showRole();
        role02.showRole();
        role.showRole();
        while (true) {
            if (role01.getAgility() > role02.getAgility()) {
                role01.attack(role02);
                if (role02.getBlood() <= 0) {
                    System.out.println(role02.getName() + "KO");
                    break;
                }
                role02.attack(role01);
                if (role01.getBlood() <= 0) {
                    System.out.println(role01.getName() + "KO");
                    break;
                }
            }
            else {
                role02.attack(role01);
                if (role01.getBlood() <= 0) {
                    System.out.println(role01.getName() + "KO");
                    break;
                }
                role01.attack(role02);
                if (role02.getBlood() <= 0) {
                    System.out.println(role02.getName() + "KO");
                    break;
                }
            }
        }
    }
}

Role类

package Role;

import java.util.Random;

public class Role {
    private static Random r=new Random();
    enum skillGrade{};
    private static String []skills=new String[]{
            "%s使出了一招[背心钉] ,转到对方的身后,一掌向%s背心的灵台穴拍去。\n",
            "%s使出了一招[游空探爪] ,飞起身形自半空中变掌为抓锁向%s。\n",
            "%s大喝一声,身形下伏,一招[劈雷坠地] ,捶向%s双腿。\n",
            "%s运气于掌,一瞬间掌心变得血红,一式[掌心雷] ,推向%s。\n",
            "%s阴手翻起阳手跟进,一招[没遮拦] ,结结实实的捶向%s。\n",
            "%s上步抢身,招中套招,一招[劈挂连环]连环攻向%s。\n"
    };
    private static String []injureds=new String[]{
            "结果%s退了半步,毫发无损。,受到%d点伤害。\n",                 //无伤
            "结果给%s造成一处瘀伤,受到%d点伤害。\n",                     //伤害*0.5
            "结果一击命中,%s痛得弯下腰,受到%d点伤害。\n",                 //伤害*0.75
            "结果%s痛苦地闷哼了一声,显然受了点内伤,受到%d点伤害。\n",      //正常伤害
            "结果%s摇摇晃晃,一跤摔倒在地,受到%d点伤害。\n",             //伤害*1.25
            "结果%s脸色一下变得惨白,连退了好几步结果轰~~!的一声,口中鲜血狂喷而出,受到%d点伤害。\n",  //伤害*1.50
            "结果%s一声惨叫,像滩软泥般塌了下去,受到%d点伤害。\n"            //伤害*2
    };
    String Name,face;
    boolean gender;
    int blood=100;
    String[] boyface={"风流俊朗","气宇轩昂","五官端正","相貌平平","一塌糊涂","面目狰狞"};
    String[] girlface={"沉鱼落雁","前凸后翘","亭亭玉立","相貌平平","黄脸婆娘","歪瓜裂枣"};
    int agility=r.nextInt(100);
    public Role() {
    }
    public Role(String name,String face, boolean gender) {
        Name = name;
        this.face = face;
        this.gender = gender;
    }
    public Role(String name,boolean gender) {
        Name = name;
        this.gender = gender;
        face=gender==true?boyface[FaceIndex()]:girlface[FaceIndex()];
        blood=100;
    }

    public int FaceIndex(){
        int num=r.nextInt(100);
        if(num>=95){
            return 0;
        }
        else if(num>=80){
            return 1;
        }else if(num>=70){
            return 2;
        }else if(num>=60){
            return 3;
        }else if(num>=40){
            return 4;
        }else {
            return 5;
        }
    }
    public void showRole(){
        System.out.println("角色名称:\t"+getName()+"\n性别为:\t\t"+getGender()+"\n长相为:\t\t"+getFace());
        System.out.printf("敏捷为:%d\n",getAgility());
        System.out.println("血量为:\t\t"+getBlood());
        System.out.println("");
    }

    public void attack(Role role){
        int n1=getSkillNum();
        int n2=getInjuredNum();
        int injured=(int)((r.nextInt(20)+5)*getInjuredIdex(n1,n2));
        role.setBlood(role.getBlood()-injured);
        System.out.printf(skills[n1]+injureds[n2],getName(),role.getName(),role.getName(),injured);
        System.out.println("此时"+role.getName()+"血量为"+role.getBlood());
    }

    //伤害计算
    public static int getSkillNum(){
        int num=r.nextInt(6);
        return num;
    }
    public static int getInjuredNum(){
        int num=r.nextInt(7);
        return num;
    }
    public static double getInjuredIdex(int n1,int n2){
        switch (n2){
            case 0:return 0.0;
            case 1:return 0.5;
            case 2:return 0.75;
            case 3:return 1;
            case 4:return 1.25;
            case 5:return 1.5;
            case 6:return 2.0;
        }
        return 1.0;
    }


    public int getAgility() {
        return agility;
    }

    public void setAgility(int agility) {
        this.agility = agility;
    }

    public String getGender(){
        if(gender==true){
            return "♂";
        }else return "♀";
    }

    public String getName() {
        return "("+Name+")";
    }

    public void setName(String name) {
        Name = name;
    }

    public String getFace() {
        return face;
    }

    public void setFace(String face) {
        this.face = face;
    }

    public void setGender(boolean gender) {
        this.gender = gender;
    }

    public int getBlood() {
        return blood;
    }

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

    public String[] getBoyface() {
        return boyface;
    }

    public void setBoyface(String[] boyface) {
        this.boyface = boyface;
    }

    public String[] getGirlface() {
        return girlface;
    }

    public void setGirlface(String[] girlface) {
        this.girlface = girlface;
    }
}


黑马程序员Java零基础视频教程_上部(Java入门,含斯坦福大学练习题+力扣算的评论 (共 条)

分享到微博请遵守国家法律