c# присваивание случайного результата из массива переменной возвращает ошибку вне диапазона - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь создать программу, которая генерирует случайные числа; индексирует таблицу; сохраняет результаты в некоторых списках; затем показывает результаты из списков на более позднем этапе. У меня есть переменная int с именем FreqMod, которую я пытаюсь присвоить случайному результату из массива с именем FrequencyModifiers []. Это вызывает ошибку времени выполнения «OutOfRange», как будто он получает нулевое значение. Но я не вижу как. Дайте мне посмотреть, смогу ли я опубликовать весь соответствующий код:

int TheHour = 0, TheMinute = 0, PlaceHolder = 0, FreqMod = 0;
int[] FrequencyModifier =
                    {
                        -3, -2, -1, 0, 0, 0, 1, 2, 3, 4, 6
                    };// int array FrequencyModifier

     DiceResult = 0;
     DiceResult = RollDice.TwoD6();

     FreqMod = FrequencyModifier[DiceResult - 1];

Это будет модификатор, добавленный к результатам последующих бросков костей.

попробовал это после некоторого исследования и все еще не радует:

int[] FrequencyModifier =
                    {
                        -3, -2, -1, 0, 0, 0, 1, 2, 3, 4, 6
                    } ;// int array FrequencyModifier

                    FrequencyModifier = new int[11];

                    DiceResult = 0;
                    DiceResult = RollDice.TwoD6();

                    FreqMod = FrequencyModifier[DiceResult - 1];

из класса с именем dice, объектом которого является RollDice:

 public int TwoD6()
            {
                diceresult = 0;
                numdice = 2;
                for(int i = 1; i <= numdice; i++)
                {
                    dieresult = 0;
                    lowest = 1;
                    highest = 6;
                    diceresult = diceresult + (1 + Rolldie.Next(lowest-1, highest));
                }
                return diceresult;

DiceResult должен быть случайное число, возвращаемое методом RollDice.TwoD6.
Я пытаюсь использовать его для назначения соответствующего номера из массива FreqMod. Таким образом, если возвращаемое случайное число равно 3, оно будет присвоено -2.

До Рождества прошло почти 20 лет с тех пор, как я посмотрел на C и C ++; Я сейчас пытаюсь выучить C#.

...