const int SWITCH_PINS[] = {1, 2, 3, 4, 5, 6, 7};
const int buttonPin = 49;
int switchState[] = {0, 0, 0, 0, 0, 0, 0};
int leds[5][8];
int count = 8;
void setup() {
// put your setup code here, to run once:
pinMode(buttonPin, INPUT_PULLUP);
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 8; j++) {
leds[i][j] = count++;
pinMode(leds[i][j], OUTPUT);
}
}
for (int i = 0; i < 7; i++) {
pinMode(SWITCH_PINS[i], INPUT_PULLUP);
}
}
void loop() {
int buttonState = digitalRead(buttonPin);
if (buttonState == LOW) {
for (int i = 4; i >= 0; i--) {
clear();
show(i);
delay(500);
}
clear();
}
show(2);
}
void show(int x) {
// put your main code here, to run repeatedly:
for (int i = 0; i < 7; i++) {
switchState[i] = digitalRead(SWITCH_PINS[i]);
}
if (switchState[0] == LOW) {
for (int i = 1; i < 3; i++) {
digitalWrite(leds[0][i + x], HIGH);
}
} else {
for (int i = 1; i < 3; i++) {
digitalWrite(leds[0][i + x], LOW);
}
}
if (switchState[1] == LOW) {
for (int i = 0; i < 2; i++) {
digitalWrite(leds[i][0 + x], HIGH);
}
} else {
for (int i = 0; i < 2; i++) {
digitalWrite(leds[i][0 + x], LOW);
}
}
if (switchState[2] == LOW) {
for (int i = 0; i < 2; i++) {
digitalWrite(leds[i][3 + x], HIGH);
}
} else {
for (int i = 0; i < 2; i++) {
digitalWrite(leds[i][3 + x], LOW);
}
}
if (switchState[3] == LOW) {
for (int i = 0; i < 4; i++) {
digitalWrite(leds[2][i + x], HIGH);
}
} else {
for (int i = 0; i < 4; i++) {
digitalWrite(leds[2][i + x], LOW);
}
}
if (switchState[4] == LOW) {
for (int i = 3; i < 5; i++) {
digitalWrite(leds[i][0 + x], HIGH);
}
} else {
for (int i = 3; i < 5; i++) {
digitalWrite(leds[i][0 + x], LOW);
}
}
if (switchState[5] == LOW) {
for (int i = 3; i < 5; i++) {
digitalWrite(leds[i][3 + x], HIGH);
}
} else {
for (int i = 3; i < 5; i++) {
digitalWrite(leds[i][3 + x], LOW);
}
}
if (switchState[6] == LOW) {
for (int i = 1; i < 3; i++) {
digitalWrite(leds[4][i + x], HIGH);
}
} else {
for (int i = 1; i < 3; i++) {
digitalWrite(leds[4][i + x], LOW);
}
}
}
void clear() {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 8; j++) {
digitalWrite(leds[i][j], LOW);
}
}
}