我怎样才能让这个代码运行“喜欢”一个功能? [英] How can I get this code to run "like" a function?

查看:83
本文介绍了我怎样才能让这个代码运行“喜欢”一个功能?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

public int Phaser3(int range)
        {
            int damage = 0;
            int dieroll = RandomLib.RandomLib.ThreadLocalRandom.Next(1, 7);
            if (range <= 0 && range >= 0)
            {

                switch (dieroll)
                {

                    case 1:
                        damage = 4;
                        return (damage);

                    case 2:
                        damage = 4;
                        return (damage);

                    case 3:
                        damage = 4;
                        return (damage);

                    case 4:
                        damage = 4;
                        return (damage);


                    case 5:
                        damage = 4;
                        return (damage);

                    case 6:
                        damage = 3;
                        return (damage);



                }
            }
            else if (range <= 1 && range > 0)
            {

                switch (dieroll)
                {

                    case 1:
                        damage = 4;
                        return (damage);

                    case 2:
                        damage = 4;
                        return (damage);

                    case 3:
                        damage = 4;
                        return (damage);

                    case 4:
                        damage = 4;
                        return (damage);


                    case 5:
                        damage = 3;
                        return (damage);

                    case 6:
                        damage = 3;
                        return (damage);
                }
            }
            else if (range <= 2 && range > 1)
            {

                switch (dieroll)
                {

                    case 1:
                        damage = 4;
                        return (damage);

                    case 2:
                        damage = 4;
                        return (damage);

                    case 3:
                        damage = 4;
                        return (damage);

                    case 4:
                        damage = 3;
                        return (damage);


                    case 5:
                        damage = 2;
                        return (damage);

                    case 6:
                        damage = 1;
                        return (damage);
                }
            }
            else if (range <= 3 && range > 2)
            {
                switch (dieroll)
                {

                    case 1:
                        damage = 3;
                        return (damage);

                    case 2:
                        damage = 2;
                        return (damage);

                    case 3:
                        damage = 1;
                        return (damage);

                    case 4:
                        damage = 0;
                        return (damage);


                    case 5:
                        damage = 0;
                        return (damage);

                    case 6:
                        damage = 0;
                        return (damage);
                }
            }
            else if (range <= 8 && range > 3)
            {
                switch (dieroll)
                {

                    case 1:
                        damage = 1;
                        return (damage);

                    case 2:
                        damage = 1;
                        return (damage);

                    case 3:
                        damage = 0;
                        return (damage);

                    case 4:
                        damage = 0;
                        return (damage);


                    case 5:
                        damage = 0;
                        return (damage);

                    case 6:
                        damage = 0;
                        return (damage);
                }
            }
            else if (range <= 15 && range > 8)
            {
                switch (dieroll)
                {

                    case 1:
                        damage = 1;
                        return (damage);

                    case 2:
                        damage = 0;
                        return (damage);

                    case 3:
                        damage = 0;
                        return (damage);

                    case 4:
                        damage = 0;
                        return (damage);


                    case 5:
                        damage = 0;
                        return (damage);

                    case 6:
                        damage = 0;
                        return (damage);
                }
            }
            else
            {
                damage = 0;
                return (damage);
            }
            damage = 0;
            return (damage);
        }





我的尝试:



dieroll是一个有效的随机生成器,以免我能够在其上运行打印测试。有没有办法将其转换为函数,以便可以使用它?如何调用和设置?非常新的编码所以欢迎任何建议,谢谢。



What I have tried:

"dieroll" is a working random generator at lest I was able to run a print test on it. Is there a way to turn this in to a function so it can be used ? How would it be called and setup? Very new to coding so any advice would be welcome thank you.

推荐答案

您可以从删除所有重复的代码并使用默认开始:所有返回零的值的switch语句中的子句。您还可以对同一返回值使用多个case语句,而不是所有返回相同数字的单个子句。大多数 if 语句包含冗余&&& ,因为您之前测试过其他值。最好删除所有重复的 return 语句,并在方法结尾只有一个语句。



所以你可以使它更紧凑如:

You could start by removing all that duplicate code and using the default: clause in your switch statements for all the values that return zero. You can also use multiple case statements for the same returned value, rather than individual clauses which all return the same number. And most of your if statements contain a redundant &&, since you previously test for the other value. And it is probably better to remove all the repeated return statements and having just one at the end of the method.

So you could make it more compact like:
int damage = 0;
int dieroll = RandomLib.RandomLib.ThreadLocalRandom.Next(1, 7);
if (range == 0)
{
    switch (dieroll)
    {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
        damage = 4;
        break;
        
    case 6:
        damage = 3;
        break;
        }
}
else if (range <= 1)
{
    switch (dieroll)
    {
    case 1:
    case 2:
    case 3:
    case 4:
        damage = 4;
        break;
        
    case 5:
    case 6:
        damage = 3;
        break;
        }
}
else if (range <= 2)
{
    switch (dieroll)
    {
    case 1:
    case 2:
    case 3:
        damage = 4;
        break;
        
    case 4:
        damage = 3;
        break;
        
    case 5:
        damage = 2;
        break;

    case 6:
        damage = 1;
        break;
    }
}
else if (range <= 3)
{
   // etc. etc.
}

// this statement is only needed once right at the end
return (damage);


Quote:

如何让这段代码像一样运行函数?

How can I get this code to run "like" a function?



怎么说,这段代码已经是函数了。


How to say , This code is already a function.

引用:

如何调用和设置?



就像C#中的任何函数一样。


Just like with any function in C#.

int Damage+Phaser3( 1);



您的代码不是特定的非常聪明,但基本上,它的工作原理。


Your code is not particularly clever, but basically, it works.

引用:

编码很新,所以欢迎任何建议,谢谢你

Very new to coding so any advice would be welcome thank you



建议:现在忘记你的项目anf学习真正的编程和C#。

按照很多教程,做所有练习。


Advice: forget your project for now anf learn really programming and C#.
Follow a lot of tutorials, do all exercises.


这篇关于我怎样才能让这个代码运行“喜欢”一个功能?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆