1

我倾向于自己解决大多数事情,但对于我的生活,尽管进行了相当多的搜索,但我无法找到一种专业的方式来做到这一点。

这是我的基本程序:

namespace ConsoleApplication1
{ 
class MonsterAttackRolls
     {
    public int GoblinAttack()
    {
        int AttackNumber = 0;
            Random rnd = new Random();
       AttackNumber = rnd.Next(1, 21);
        return(AttackNumber);            
    }

    public int OrcAttack()
    {
        int AttackNumber = 0;
        Random rnd = new Random();
        AttackNumber = rnd.Next(11, 31);
        return (AttackNumber);
    }

    public int OgreAttack()
    {
        int AttackNumber = 0;
        Random rnd = new Random();
        AttackNumber = rnd.Next(21, 41);
        return (AttackNumber);
    }

}

class ApplicationObject
{
    static void Main()
    {
      MonsterAttackRolls Goblin1 = new MonsterAttackRolls();
      MonsterAttackRolls Orc1 = new MonsterAttackRolls();
      MonsterAttackRolls Ogre1 = new MonsterAttackRolls();

        Console.WriteLine("These are the attack numbers for the Goblin and the Orc! {0} {1}", Goblin1.GoblinAttack(), Orc1.OrcAttack());
        Console.ReadLine();

        Console.WriteLine("This is the Ogre's attack number! {0}", Ogre1.OgreAttack());
        Console.ReadLine();
    }
}
}

现在我想回到我的 Main() 程序并直接进入 Ogre 的攻击。我怎么做?带goto?大声笑,我不知道。

4

3 回答 3

0

您需要设置一个具有正确条件的循环,否则您的程序将从头到尾运行一次然后退出。如果你想让你的食人魔攻击一定次数,把它放在一个 for 循环中,例如:

for(int i = 0; i < 5; i++)
{

  attack code here;

}

我建议添加一些用户输入来指示程序流程?还可以考虑将怪物放入他们自己的类中,例如拥有一个主 Moster 类,其中包含 montser 所需的所有共享属性,然后将每个怪物设置为派生类。

然后你可以设置你的攻击方法来接受怪物的类型。应该防止你不得不为每个怪物编写攻击方法。

于 2012-10-22T09:36:06.150 回答
0

您的程序在打印输出后结束,因为您到达了您的方法的结尾,并且从所有意图和目的Main来看,该方法就是您的程序。为了让它重复你已经完成的过程,你需要一个循环

在 C# 中有几种循环方式。您可以使用循环循环固定次数for,也可以在条件为真时使用whileor循环进行do循环。例如,如果你想重复你的过程十次,你可以在你的主循环中使用它:

for (int i = 0; i < 10, i++)
{
    // put your original code here
}
于 2012-10-22T09:36:57.863 回答
0

我认为答案只是在每个 ReadLine 等待您的输入后按回车键。

哦,我认为这是一个非常酷的第一个程序,比“Hello World”要酷得多……你们这些强大的食人魔,为栅栏而战;-)

于 2012-10-22T10:00:37.593 回答