2016-11-18 4 views
1

Код ниже является частью моей «безопасной» программы. Я должен сделать 4 «догадки» (пароль состоит из 4 цифр). Для каждой догадки я использую несколько операторов if, но мне было интересно, есть ли способ сделать метод для каждого «угадывания». Таким образом, вместо этих 4-х разделов if-statement у меня будет только один метод.Arduino метод изготовления

if (turn == 1) { 

    if ((buttonState != lastButtonState) && buttonState == 1) { 
     guess1 = newValue; 
     turn = 2; 
     Printer(); 
    } 
    lastButtonState = buttonState; 
    } 
    if (turn == 2) { 
    if ((buttonState != lastButtonState) && buttonState == 1) { 
     guess2 = newValue; 
     turn = 3; 
     Printer(); 
    } 
    lastButtonState = buttonState; 
    } 

    if (turn == 3) { 
    if ((buttonState != lastButtonState) && buttonState == 1) { 
     guess3 = newValue; 
     turn = 4; 
     Printer(); 
    } 
    lastButtonState = buttonState; 
    } 

    if (turn == 4) { 
    if ((buttonState != lastButtonState) && buttonState == 1) { 
     gok4 = nieuwewaarde; 
     beurt = 5; 
     Printer(); 
    } 
    lastButtonState = buttonState; 
    } 
+1

Поскольку Arduino использует C++, я удалил тег C. Что касается вашей проблемы, да, можно разбить общий код на отдельную функцию. Я бы рекомендовал его. Для этого я предлагаю вам [найти хорошую книгу для начинающих] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) и немного почитать о функциях и также о прохождении аргументов * по ссылке *. –

ответ

0

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

int guess[4]; 

if ((buttonState != lastButtonState) && buttonState == 1) { 
    guess[turn-1] = newValue; 
    if (turn == 4) 
    { 
     gok4 = nieuwewaarde; 
     beurt = 5; 
    } 
    else 
     turn = turn+1; 
    Printer(); 
} 
lastButtonState = buttonState; 

Вы можете настроить + 1/-1, если считать поворот от 0. Но с более широкой точки зрения того, что вы хотели бы достичь, могут быть и другие способы, чтобы написать вещи.

Кроме того, код Arduino не находится на C++, но AVR. «Пользовательский» код - это «Обработка».

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