将此开关功能替换为?

时间:2018-11-27 00:30:38

标签: switch-statement

我为一个问题感到尴尬:

此代码有问题(完整代码超过500:

    public static int requiredPointByBreed(int breedId, int statsId, int value) {
    switch(statsId) {
    case 11 ://Vitality
        return 1; //Cost 1 point for all breed
    case 12 ://Wisdom
        return 3; //Cost 3 point for all breed
    case 10 ://Strength
        switch(breedId) {
        case 11 :
            return 3;

        case 1 :
            if(value < 50)
                return 2;
            if(value < 150)
                return 3;
            if(value < 250)
                return 4;
            return 5;

        case 5 :
            if(value < 50)
                return 2;
            if(value < 150)
                return 3;
            if(value < 250)
                return 4;
            return 5;

        case 4 :
            if(value < 100)
                return 1;
            if(value < 200)
                return 2;
            if(value < 300)
                return 3;
            if(value < 400)
                return 4;
            return 5;

        case 2 :
            if(value < 50)
                return 2;
            if(value < 150)
                return 3;
            if(value < 250)
                return 4;
            return 5;

        case 7 :
            if(value < 50)
                return 2;
            if(value < 150)
                return 3;
            if(value < 250)
                return 4;
            return 5;

        case 12 :
            if(value < 50)
                return 1;
            if(value < 200)
                return 2;
            return 3;

        case 10 :
            if(value < 50)
                return 1;
            if(value < 250)
                return 2;
            if(value < 300)
                return 3;
            if(value < 400)
                return 4;
            return 5;

        case 9 :
            if(value < 50)
                return 1;
            if(value < 150)
                return 2;
            if(value < 250)
                return 3;
            if(value < 350)
                return 4;
            return 5;

        case 3 :
            if(value < 50)
                return 1;
            if(value < 150)
                return 2;
            if(value < 250)
                return 3;
            if(value < 350)
                return 4;
            return 5;   

        case 6 :
            if(value < 100)
                return 1;
            if(value < 200)
                return 2;
            if(value < 300)
                return 3;
            if(value < 400)
                return 4;
            return 5;

        case 8 :
            if(value < 100)
                return 1;
            if(value < 200)
                return 2;
            if(value < 300)
                return 3;
            if(value < 400)
                return 4;
            return 5;

        }
        break;
    }
    return 5;
}

我正在与一个可以添加特征(生命力,力量,敏捷性等)的玩家一起编写游戏,但是这些特征具有这样的底限:

强度:

值=基本特征

如果值<50的成本2或值<150的成本3点等,则为品种ID 1。

但是我在数据库中创建了一个表,该表管理所有品种和类型(生命力,强度等)的成本点,但是idk如何在我的代码中实现

品种1的强度: 0,50:1-2 | 51,150:1-3 | 151,250:1-4 | 251:1-5

0,50是值

1-2是成本点

对不起,我的英语不好,但我希望你能理解我!

感谢您将来的回答!

0 个答案:

没有答案