2014-12-18 3 views
1

Я пытаюсь сделать версию игровой рулетки, но я застрял в данный момент. Я поместил числа 0-36 в список и оттуда выбрал случайное число. Затем я помещаю число в ряд операторов if, если результат от оператора модуля равен == 0 его черный, а если его> = 1, он красный. Но когда я прихожу к зеленому 0, я столкнулся с проблемой, поскольку он показывает как зеленый, так и черный, как и первый оператор if из результата модуля. Итак, я думал, могу ли я исключить число 0 из первого оператора if? Или у кого-то есть более практичное решение для этого? Любая помощь приветствуется.Исключить число ноль из modolus в выражении if

Random rnd = new Random(); 

List<int> number = new List<int>(); 
for (int i = 0; i < 37; i++) 
{ 
    number.Add(i); 
} 

int r = rnd.Next(number.Count); 

if (r %2 == 0) 
{ 
    Console.WriteLine("You got black " + "(" + r + ")" + "!"); 
} 

if (r %2 >=1) 
{ 
    Console.ForegroundColor = ConsoleColor.Red; 
    Console.WriteLine("You got a red " + "(" + r + ")" + "!"); 
    Console.ResetColor(); 
} 
else if (r == 0) 
{ 
    Console.ForegroundColor = ConsoleColor.Green; 
    Console.WriteLine("You got a green " + "(" + r + ")" + "!"); 
    Console.ResetColor(); 
} 

Console.ReadKey(); 

ответ

2

Move

if (r == 0){...} 

к вершине, если ваши остальное сослагательного наклонения

При том, что сначала вычисляется, остальные блоки остальное не будет.

+0

В принципе, если r == 0, то нет необходимости преследовать по модулю. Поэтому я считаю, что решение Сетионика должно работать. if (r == 0) {Green} else {Check Modulo} – Justjyde

+0

Это не сработало, я получил тот же результат, что и раньше. Две строки с одним зеленым и одним нормальным цветным текстом, в котором говорится: «У вас зеленый (0)! Я пробовал некоторое смешение с утверждениями, но без результата. – halalbin

+0

Вы специально пробовали if (r == 0) {. ..} else if (r% 2 == 0) {...} else if (r% 2 == 1) {...} ? – Sethionic