Я опять с вопросом. Создал цикл for() от 0 до 9. Создаю переменную x равную 5. Хочу выполнить условие: если for увеличился до 4: x - 1; И когда x уменьшится до нуля выполнить break. Код (C++): int x = 5; #include <LiquidCrystal.h> LiquidCrystal lcd(2, 3, 4, 5, 10, 12); void setup() { lcd.begin(16, 2); pinMode(13, INPUT_PULLUP); } void loop() { for (int i = 0; i < 10; ++i) { lcd.setCursor(i, 0); lcd.print("A"); lcd.setCursor(0, 1); lcd.print(x); delay(200); lcd.clear(); if (i == 3 && digitalRead(13)) { x = x - 1; } if (x == 0) { break; } } }
Пожалуйста загрузите его себе. Увидите что произойдёт, когда x станет равным 0. А мне надо, чтобы он опять становился равным 5. Пожалуйста, помогите мне. Заранее благодарен.
Есть инициализация x = 5; Есть операция x = x - 1; Больше операций с переменной "x" нет. Как "x" может снова стать 5 ???
А может так. Из того что получилось трудно понять что тебе надо. Код (C++): if (x == 0) { x=5; break; }
Да так, скетч небольшой. Вам нужно lcd1602 и кнопка. Загрузите его себе, если у вас UNO R3. Хотя наверное, написан непрофессионально. Код (C++): int upOrDown = 0; int health = 5; int hero = 1; int keyCount = 0; #include <LiquidCrystal.h> LiquidCrystal lcd(2, 3, 4, 5, 10, 12); boolean jumping = false; byte fir[8] = { B01100, B01100, B00000, B01110, B11100, B01100, B11010, B10011, }; byte sec[8] = { B01100, B01100, B00000, B01100, B01100, B01100, B01100, B01110, }; byte jump[8] = { B01100, B01100, B00000, B11110, B01101, B11111, B10000, B00000, }; byte door[8] = { B11111, B10001, B10001, B11001, B10001, B10001, B10001, B11111, }; byte heart[8] = { B00000, B01010, B10101, B10001, B01010, B00100, B00000, B00000, }; byte partition[8] = { B00001, B00001, B00001, B00001, B00001, B00001, B00001, B00001, }; void setup() { lcd.begin(16, 2); lcd.createChar(1, fir); lcd.createChar(2, sec); lcd.createChar(3, jump); lcd.createChar(4, door); lcd.createChar(5, heart); lcd.createChar(6, partition); } void gnd1() { lcd.setCursor(0, 1); lcd.write(0xFF); lcd.write(0xFF); lcd.write(0xFF); lcd.write(0xFF); lcd.write(0x20); lcd.write(0xFF); lcd.write(0xFF); lcd.write(0xFF); lcd.write(0xFF); lcd.write(0xFF); } void gnd2() { lcd.setCursor(0, 1); lcd.write(0xFF); lcd.write(0xFF); lcd.write(0xFF); lcd.write(0x20); lcd.write(0xFF); lcd.write(0xFF); lcd.write(0x20); lcd.write(0xFF); lcd.write(0xFF); lcd.write(0xFF); } void loop() { for (int moveHero = 0; moveHero < 9; ++moveHero) { if (moveHero == 0 || moveHero == 2 || moveHero == 4 || moveHero == 6 || moveHero == 8) { hero = 1; } if (moveHero == 1 || moveHero == 3 || moveHero == 5 || moveHero == 7 || moveHero == 9) { hero = 2; } lcd.setCursor(moveHero, upOrDown); lcd.write(hero); gnd1(); lcd.setCursor(9, 0); lcd.write(byte(6)); lcd.write(byte(5)); lcd.print(health); lcd.print(" "); lcd.write(0x8D); lcd.print(keyCount); lcd.setCursor(9, 1); lcd.write(byte(6)); lcd.print("Lev 1"); delay(200); lcd.clear(); if (health == 0) { health = 5; break; } if (moveHero == 4 && digitalRead(13)) { health = health - 1; } } for (int moveHero = 0; moveHero < 9; ++moveHero) { lcd.setCursor(moveHero, upOrDown); lcd.write(hero); gnd2(); lcd.setCursor(9, 0); lcd.write(byte(6)); lcd.write(byte(5)); lcd.print(health); lcd.print(" "); lcd.write(0x8D); lcd.print(keyCount); lcd.setCursor(9, 1); lcd.write(byte(6)); lcd.print("Lev 1"); delay(200); lcd.clear(); if (health == 0) { health = 5; break; } if (moveHero == 4 && digitalRead(13)) { health = health - 1; } if (moveHero == 7 && digitalRead(13)) { health = health - 1; } } }