2017-02-17 11 views
0

Есть ли способ иметь значение int, которое является несколькими значениями? Здесь вы можете увидеть код, сделав мини-игру как доказательство концепции. В настоящее время у меня есть x происходит в цикле номер 4, а y происходит в цикле № 9.Создание int может иметь несколько значений?

Есть ли способ повторить эти действия на других контурах wihout, превратив их в огромный беспорядок: i == 4 || i = = 14 || i == 18

то, что я пытаюсь спросить, если его можно просто написать i == a , а затем иметь несколько значений.

Если вы еще не определились, я совсем начинаю на C#, поэтому, если вы можете объяснить это легко понятным образом, я был бы очень благодарен. Если то, что я написал, немного сложно понять, то им жаль, что я не являюсь носителем английского языка, просто спросите, не знаете ли вы, что я имею в виду.

for (int i = 0; i < 50; i++) 
{ 
    string input; 
    input = Console.ReadKey().Key.ToString(); 
    Console.Clear(); 
    if (input == "A") Animation.frame1(); 
    else Animation.fall(); 
    if (i == 4) Animation.blocklow2(); 
    if (i == 9) Animation.blockhigh2(); 
    input = Console.ReadKey().Key.ToString(); 
    Console.Clear(); 
    if (input == "W" && i == 4) Animation.blockjump(); 
    if (input == "S" && i == 9) Animation.blockduck(); 
    if (input == "D" && i != 4 && i != 9) Animation.frame2(); 
    else if (input != "W" && i == 4) Animation.fall(); 
    else if (input != "S" && i == 9) Animation.smack(); 
    if (i == 3) Animation.blocklow(); 
    if (i == 8) Animation.blockhigh(); 
} 

ответ

4

Вы можете сделать if (new int[] { 4, 14, 18 }.Contains(i)), чтобы проверить наличие нескольких значений.

0

В некоторых ситуациях вы можете выполнить побитовые тесты, чтобы проверить, является ли некоторые биты установлены в вашем номере:

if ((x & 4) != 0) 
{ 
    // This case covers numbers 
    // 4, 5, 6, 7, 12, 13, 14, and many others... 
} 

Общего ответ на ваш вопрос НЕТ, и это имеет смысл использовать только дополнительные знания о значениях вы тестируете, а затем используете эти знания.

Другой вариант - проверить, принадлежит ли число к последовательности, например HHLV, в другом ответе.

Итак, как вы дошли до значений 4, 14 и 18?

+0

на основе кода, это выглядит как анимация, которая работает в определенные моменты времени в цикле, догадываясь я время для кадров в петле. Я предполагаю, что OP пытается повторно использовать ресурс анимации, проверяя i. – Andrew

+0

Я не думаю, что побитовое работает так хорошо для этого, так как OP хочет конкретных чисел, побитовое будет давать больше чисел, чем хочет OP, или нужна очень сложная проверка, чего пытается избежать OP. – Andrew

1

Магазин список Интс, которые вы хотите проверить против, а затем использовать .Contains

List<int> frame2ints = new List<int>{4,9}; 
if (input == "D" && !frame2ints.Contains(i)) Animation.frame2(); 

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

  • Нет связанных вопросов^_^