3

我需要创建代码以将 50 个随机字母散布到控制台中(这是一个“蛇”游戏);那部分,我没有问题。我使用此代码生成字母(一旦我知道如何解决问题,我正在处理的“将它们分散在控制台周围”部分)

        Random rand = new Random();
        int number = rand.Next(0, 26);
        char letter = (char)('a' + number);

它生成随机字母就好了,但问题的说明指定辅音与元音的比例必须为 4:1,我不知道如何使这部分发生。

4

1 回答 1

6

创建一对静态字符串:

  String consonants = "BCDFGHJKLMNPQRSTVWXYZ";

  String vowels = "AEIOU";

生成一个介于 1..5(或 0..4)之间的随机数。如果数字是 1 (0),则从元音列表中选择一个随机字符。否则从辅音列表中选择一个随机字符。

或者,如果您需要4 :1 的比例,请使用 for 循环代替第一个随机数生成器,即:

for ( i = 0; i < 50; i++ )
{
    if ( i % 5 == 0 )
    // select a vowel at random
    else
    // select a consonant at random
}

编辑:完整的解决方案。我正在将我的五十个字符写入一个数组,然后将它们打印到控制台。您可以传递theChar给您的输出方法。

    public void RandomChars()
    {
        Random random = new Random();
        String consonants = "BCDFGHJKLMNPQRSTVWXYZ";
        String vowels = "AEIOU";
        StringBuilder result = new StringBuilder();
        for (int i = 0; i < 50; i++)
        {
            char theChar;

            if (i % 5 == 0)
            {
                theChar = vowels[random.Next(vowels.Length)];
            }
            else
            {
                theChar = consonants[random.Next(consonants.Length)];
            }

            result.Append(theChar);
        }

        Console.WriteLine(result.ToString());
    }
于 2012-10-23T04:32:49.640 回答