Untitled

 avatar
unknown
plain_text
a year ago
2.7 kB
2
Indexable
string[] names = new string[]
{
    "name1",
    "name2",
    "name3",
    "name4",
    "name5",
};
while (true)
{
    Console.WriteLine("Добро пожаловать в Рандомайзер!");
    Console.WriteLine("###############################");
    Console.WriteLine("1. Показать все имена");
    Console.WriteLine("2. Добавить имена");
    Console.WriteLine("3. Получить случайные имена");
    Console.WriteLine("4. Получить случайные команды");

    int inputComand = Convert.ToInt32(Console.ReadLine());

    switch (inputComand)
    {
        case 1:
            ShowNames();
            break;
        case 2:
            AddNames();
            break;
        case 3:
            GetRandomNames();
            break;
        case 4:
            GetRandomCommands();
            break;
    }

    void ShowNames()
    {

        foreach (string name in names)
        {
            Console.WriteLine(name);
        }
    }

    void AddNames()
    {
        Console.WriteLine("Введите имена");
        string newNames = Console.ReadLine();

        string[] splitNames = newNames.Split(',');

        foreach (string name in splitNames)
        {
            Array.Resize(ref names, names.Length + 1);
            names[names.Length - 1] = name;
        }
        Console.WriteLine("Имена добавлены");


    }
    void GetRandomNames()
    {
        Console.WriteLine("Случайные имена:");
        Random random = new Random();
        int maxIndex = names.Length;
        int randomIndex = random.Next(0, maxIndex);
        Console.WriteLine(names[randomIndex]);
    }
    void GetRandomCommands()
    {

        Console.WriteLine("Введите количество участников в одной команде:");
        int teamSize = Convert.ToInt32(Console.ReadLine());

        if (teamSize <= 0 || teamSize > names.Length)
        {
            Console.WriteLine("Некорректное количество участников в команде.");
            return;
        }

        Random random = new Random();
        var shuffledNames = names.OrderBy(x => random.Next()).ToArray();

        int teamCount = (int)Math.Ceiling((double)names.Length / teamSize);

        Console.WriteLine($"Количество участников в команде: {teamSize}");
        for (int i = 0; i < teamCount; i++)
        {
            Console.WriteLine($"Команда {i + 1}: {string.Join(", ", shuffledNames.Skip(i * teamSize).Take(teamSize))}");
        }
    }


}
Leave a Comment