Случайно назначить значение массива со значением другого массива - PullRequest
0 голосов
/ 23 ноября 2018

Как мне назначить один набор значений массива со значениями другого массива?Оба имеют 26 значений.

Я эмулирую игру «Сделка» или «Нет сделки», где пользователь выбирает случай из указанного списка.Теперь, при каждом запуске консольного приложения, я хочу, чтобы для каждого денежного выигрыша в каждом случае было случайное назначение (для справедливости).Мой код имеет следующий вид:

    int[] cashPrizeArray = new int[] { 0, 1, 2, 5, 10, 20, 50, 100, 150, 200, 250, 500, 750, 1000, 2000, 3000, 4000, 5000, 10000, 15000, 20000, 25000, 50000, 75000, 100000, 200000 };
    string[] caseArray = new string[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26" };

    Console.WriteLine("Deal or Not!");
    Console.Write("Choose a case: 1-26: ");
    string userCase = Console.ReadLine();



    if (!caseArray.Contains(userCase))
    {
        Console.WriteLine("\nUnexpected input text.\nThis application will now be terminated.\nPress ENTER to continue...");
        Console.ReadLine();
        Environment.Exit(0);
    }

    else
    {
        Console.WriteLine("You chose case " + userCase);
        Console.ReadLine();
    }

Мне нужно будет ссылаться на эти случаи один за другим, когда пользователь выбирает их, а затем удалить их из вызова в массиве после того, как он был первоначально открыт.

1 Ответ

0 голосов
/ 23 ноября 2018

Если вы создаете 2D-список с первым измерением, показывающим, в каком случае, и вторым измерением, показывающим сумму денег на эту сумму денег.Затем вы проверяете, использовали ли вы этот конкретный случай, и если да, то попробуйте еще раз (использовал goto, но вы можете изменить его) или, если он не был использован, вы добавляете этот случай в список вместе с деньгами во втором измерении.

Код:

public static List<List<string>> PairedCases = new List<List<string>>();

    public static void addsubstrin(string money, string casenom)
    {
        List<string> sublist = new List<string>();

        sublist.Add(money);
        sublist.Add(casenom);

        PairedCases.Add(sublist);
    }

    static void Main(string[] args)
    {
        int[] cashPrizeArray = new int[] { 0, 1, 2, 5, 10, 20, 50, 100, 150, 200, 250, 500, 750, 1000, 2000, 3000, 4000, 5000, 10000, 15000, 20000, 25000, 50000, 75000, 100000, 200000 };
        string[] caseArray = new string[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26" };

        Random rnd = new Random();

        foreach (int inte in cashPrizeArray)
        {
            Restart:;

            int putincase = rnd.Next(1, 27);

            bool found = false;

            //here we chack if its already in the list

            for (int a = 0; a < PairedCases.Count(); a++)
            {
                if (putincase.ToString() == PairedCases[a][1])
                {
                    found = true;
                }
            }

            if(found == false)
            {
                addsubstrin(inte.ToString(), putincase.ToString());
            }
            else
            {
                goto Restart;
            }
        }

        for (int i = 0; i < PairedCases.Count(); i++)
        {
            Console.WriteLine(PairedCases[i][0] + "   " + PairedCases[i][1]);
        }

        Console.ReadLine();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...