Java 我怎样才能使这个调平系统工作?

Java 我怎样才能使这个调平系统工作?,java,Java,我搞不清楚如何制作我的调平系统。当有人越过xP要求的界限时,他们应该升级,该方法应该打印此信息以及一些操作员函数。仅当值a与值b交叉时。或者在这种情况下。如果值a不再是值a,而是更改为b。但只有当它改变的时候 // Leveling system String[] levels = {"Bitch", "Trainee", "Rookie", "Supervisor", "Pro", "Killer Machine", "Infamous", "Legendary", "Badass",

我搞不清楚如何制作我的调平系统。当有人越过xP要求的界限时,他们应该升级,该方法应该打印此信息以及一些操作员函数。仅当值a与值b交叉时。或者在这种情况下。如果值a不再是值a,而是更改为b。但只有当它改变的时候

// Leveling system
    String[] levels = {"Bitch", "Trainee", "Rookie", "Supervisor", "Pro", "Killer Machine", "Infamous", "Legendary", "Badass", "Badass MOFO"};
    Integer[] xPs = {250, 750, 1500, 3000, 5000, 8000, 12000, 18000, 24000, 36000};
    Integer[] maxHealthArray = {155, 190, 225, 260, 295, 330, 365, 400, 435, 470};


 if(xP < xPs[0]) {
                System.out.println("\nYour xP is: " + xP);
                System.out.println("You have reached a rank of: " + levels[0]);
                maxHealth += maxHealthArray[0];
            }
            else if(xP < xPs[1]) {
                System.out.println("\nYour xP is: " + xP);
                System.out.println("You have reached a rank of: " + levels[1]);
                maxHealth += maxHealthArray[1];
            }
            else if(xP < xPs[2]) {
                System.out.println("\nYour xP is: " + xP);
                System.out.println("You have reached a rank of: " + levels[2]);
                maxHealth += maxHealthArray[2];
            }
            else if(xP < xPs[3]) {
                System.out.println("\nYour xP is: " + xP);
                System.out.println("You have reached a rank of: " + levels[3]);
                maxHealth += maxHealthArray[3];
            }
            else if(xP < xPs[4]) {
                System.out.println("\nYour xP is: " + xP);
                System.out.println("You have reached a rank of: " + levels[4]);
                maxHealth += maxHealthArray[4];
            }
            else if(xP < xPs[5]) {
                System.out.println("\nYour xP is: " + xP);
                System.out.println("You have reached a rank of: " + levels[5]);
                maxHealth += maxHealthArray[5];
            }
            else if(xP < xPs[6]) {
                System.out.println("\nYour xP is: " + xP);
                System.out.println("You have reached a rank of: " + levels[6]);
                maxHealth += maxHealthArray[6];
            }
            else if(xP < xPs[7]) {
                System.out.println("\nYour xP is: " + xP);
                System.out.println("You have reached a rank of: " + levels[7]);
                maxHealth += maxHealthArray[7];
            }
            else if(xP < xPs[8]) {
                System.out.println("\nYour xP is: " + xP);
                System.out.println("You have reached a rank of: " + levels[8]);
                maxHealth += maxHealthArray[8];
            }
            else if(xP < xPs[9]) {
                System.out.println("\nYour xP is: " + xP);
                System.out.println("You have reached a rank of: " + levels[9]);
                maxHealth += maxHealthArray[9];
//调平系统
String[]级别={“婊子”、“实习生”、“新秀”、“主管”、“职业”、“杀手机器”、“臭名昭著”、“传奇”、“恶棍”、“恶棍莫福”};
整数[]xPs={250、750、1500、3000、5000、8000、12000、18000、24000、36000};
整数[]maxHealthArray={155、190、225、260、295、330、365、400、435、470};
如果(xP
为什么不在枚举中设置级别

public enum Levels {
    BITCH("bitch", 250, 155);
    TRAINEE("trainer", 750, 190);

    private final String level;
        private final int xP;
        private final int maxHealth;

    private Levels(String level, int xP, int maxHealth) {
            this.level = level;
            this.xP = xP;
            this.maxHealth = maxHealth;
        }

    public String getLevel(){
        return this.level;
    }

    public int getXP(){
        return this.xP;
    }

    public int getMaxHealth(){
        return this.maxHealth;
    }
}
并使用EnumSet循环:

EnumSet.allOf(Levels.class).forEach(level -> {
   if (xP < level.getXP()){
      System.out.println("\nYour xP is: " + xP);   
      System.out.println("You have reached a rank of: " + level.getLevel());
      maxHealth += level.getMaxHealth();
     }
   }
);
EnumSet.allOf(Levels.class).forEach(level->{
if(xP

请注意,上面的代码没有经过真正的测试,但应该会给您一个想法。

我认为OP想要的是只在XP边界条件下触发一次的东西。如果我们继续执行
Enum
想法:

枚举级别{
圣骑士(750,190,空),
牡丹(250155,圣骑士);
私有最终int maxXp;
私人最终智力健康buff;
下一级为私人决赛;
等级(int maxXp,int HEALTHBUNF,下一级){
this.healthBuff=healthBuff;
this.maxXp=maxXp;
this.next=next;//表示知道“next”级别,但至少是最终级别
}
//如果不适用,则返回null
级别提升级别(int xp){
返回xp>maxXp?下一步:空;
}
}
公共服务推广(){
下一级;
//虽然()处理多个促销,但可能不相关
while((next=this.level.promotionLevel(this.xp))!=null){
promoteTo(下一个);
}
}

更改if语句的顺序,使
(xP
排在第一位,
(xP
排在最后。还要为每个语句添加一个附加检查
(xP>=xPs[8])&&(xP
。根据您的要求,此附加检查可能没有必要。为什么不使用控制变量为0到9(或9到0)的循环,这样您就不会得到十份几乎相同的代码?