Случайный сборщик слов выбирает последовательности одинаковых букв? - PullRequest
0 голосов
/ 13 октября 2018

Я делаю простую игру палача, которая запускается в консоли.Я создал метод, который выбирает случайные слова из списка для последующего использования в качестве ответа.Я создал этот метод для этого:

public static string GetWord()
{
    Random random = new Random();
    string[] words = new string[5]{"a", "b", "c", "d", "e"};
    return words[random.Next(5)];
}

И я проверил метод, зациклив метод 100 раз с циклом for:

static void Man(string[] args)
{
    for(int i = 0; i <101; i++)
    {
        Console.WriteLine(GetWord());
    }
}

Я ожидаю получить случайный наборбуквы в качестве вывода.Однако, когда я запускаю программу, это не так.Вместо этого я получаю что-то похожее на:

ddddddddddd dd
dddcccceeeee
edddddaa
aa aaaaabbbbbbbbbb
b cccceeeeeeeeddddaaaaa aaaaeebbbbbbbbbbbbbbчто я делаю не так?Если так, что я могу сделать, чтобы это исправить?Заранее спасибо

1 Ответ

0 голосов
/ 13 октября 2018

попробуйте это:

private static readonly Random Random = new Random();

public static string RandomString(int length)
{
    const string chars = "abcde";
    return new string(Enumerable.Repeat(chars, length).Select(s => s[Random.Next(s.Length)]).ToArray());
}

static void Man(string[] args)
{
   Console.WriteLine(RandomString(100));
}

enter image description here

...