Text Share Online

int leds[3] = {8, 9, 10};
int buttons[3] = {2, 3, 4};

int sequence[100];
int level = 1;

void setup() {

for (int i = 0; i < 3; i++) {
pinMode(leds[i], OUTPUT);
pinMode(buttons[i], INPUT_PULLUP); // внутренний резистор
}

randomSeed(analogRead(0));
}

void showSequence() {

for (int i = 0; i < level; i++) {

int led = sequence[i];

digitalWrite(leds[led], HIGH);
delay(500);

digitalWrite(leds[led], LOW);
delay(300);
}
}

int readButton() {

while (true) {

for (int i = 0; i < 3; i++) {

if (digitalRead(buttons[i]) == LOW) { // нажата кнопка

delay(200); // антидребезг
return i;
}
}
}
}

void gameOver() {

for (int i = 0; i < 3; i++) {
digitalWrite(leds[i], HIGH);
}

delay(1000);

for (int i = 0; i < 3; i++) {
digitalWrite(leds[i], LOW);
}

level = 1;
}

void loop() {

sequence[level – 1] = random(0, 3);

showSequence();

for (int i = 0; i < level; i++) {

int input = readButton();

if (input != sequence[i]) {
gameOver();
return;
}
}

level++;
delay(800);
}

Share This: