2016-06-16 3 views
0

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

Например:

// If statements for gene 1 (NNN) 
if (intSireBuild == 1) 
{ 
    if (intDamBuild == 1) 
    { 
     lblResults1.Content = "NNN"; 
    } 
} 
else if (intSireBuild == 1) 
{ 
    if (intDamBuild == 2) 
    { 
     // Random number thing 

     int[] NNNxNna; 
     NNNxNna = new int[5]; 

     NNNxNna[0] = 1; 
     NNNxNna[1] = 1; 
     NNNxNna[2] = 1; 
     NNNxNna[3] = 1; 
     NNNxNna[4] = 2; 
     NNNxNna[5] = 2; 

     Random random = new Random(); 
     int gene2 = random.Next(NNNxNna.Length); 

     // The problem is occurring here, I believe 

     if (gene2 == 1) 
     { 
      lblResults1.Content = "NNN"; 
     } 
     else 
     { 
      lblResults1.Content = "Nna"; 
     } 
    } 
} 
// When you click the button, a calculation will be made using user inputed genes 

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

Проблема, с которой я сталкиваюсь, заключается в том, что между массивом, содержащим список чисел (1,1,1,1,2,2,), имеется нечто среднее между матрицей (NNN - или '1) «чаще, чем« Nna »), то, что происходит, заключается в том, что программа запутывается и не выводит никакой информации на ярлык, который я использую.

Мне было интересно, может ли кто-нибудь помочь мне выяснить, что мне не хватает/неправильно кодируется?

+0

you ha вы забыли выбрать один из элементов массива при случайном индексе. –

+0

Извините, что беспокою вас, но как мне это сделать? – CMix

ответ

0

Это следующий никогда не произойдет в противном случае он бы ввести первый «если»

else if (intSireBuild == 1) 

Вы должны удалить второе условие и оставить его со следующими

if (intSireBuild == 1) 
{ 
    if (intDamBuild == 1) 
    { 
     lblResults1.Content = "NNN"; 
    } 
    else if (intDamBuild == 2) 
    { 
     // Random number thing 
     // Rest of the code 

Дополнительно, это неверный индекс привязки NNNxNna[5] = 2;, так как массив размером 5 может иметь только индексы от 0 до 4.

+0

Спасибо, что исправил мою проблему! – CMix

Смежные вопросы