Chr*_*s B 3 c# string random console
我需要创建代码将50个随机字母分散到控制台中(这是一个"蛇"游戏); 那部分,我没有问题.我使用这段代码来生成字母(一旦我知道如何解决问题,我将"处理它们分散在控制台周围"部分)
Random rand = new Random();
int number = rand.Next(0, 26);
char letter = (char)('a' + number);
Run Code Online (Sandbox Code Playgroud)
它生成随机字母就好了,但对于这个问题的说明指定辅音元音的比例必须是4:1,和我不知道如何使这部分发生.
创建一对静态字符串:
String consonants = "BCDFGHJKLMNPQRSTVWXYZ";
String vowels = "AEIOU";
Run Code Online (Sandbox Code Playgroud)
生成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
}
Run Code Online (Sandbox Code Playgroud)
编辑:完整的解决方案.我正在将50个字符写入数组,然后将它们打印到控制台.您可以传递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());
}
Run Code Online (Sandbox Code Playgroud)