const int buttonPin = 0;
const int ledPins[14] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
for (int i = 0; i < 14; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
if (digitalRead(buttonPin) == LOW) {
rollDice();
delay(500);
}
}
void rollDice() {
for (int i = 0; i < 14; i++) {
digitalWrite(ledPins[i], LOW);
}
int dice1 = random(1, 7);
int dice2 = random(1, 7);
lightUpDice(dice1, 0);
lightUpDice(dice2, 7);
delay(1000);
}
void lightUpDice(int value, int offset) {
switch (value) {
case 1:
digitalWrite(ledPins[offset + 0], HIGH);
break;
case 2:
digitalWrite(ledPins[offset + 0], HIGH);
digitalWrite(ledPins[offset + 1], HIGH);
break;
case 3:
digitalWrite(ledPins[offset + 0], HIGH);
digitalWrite(ledPins[offset + 1], HIGH);
digitalWrite(ledPins[offset + 2], HIGH);
break;
case 4:
digitalWrite(ledPins[offset + 0], HIGH);
digitalWrite(ledPins[offset + 1], HIGH);
digitalWrite(ledPins[offset + 2], HIGH);
digitalWrite(ledPins[offset + 3], HIGH);
break;
case 5:
digitalWrite(ledPins[offset + 0], HIGH);
digitalWrite(ledPins[offset + 1], HIGH);
digitalWrite(ledPins[offset + 2], HIGH);
digitalWrite(ledPins[offset + 3], HIGH);
digitalWrite(ledPins[offset + 4], HIGH);
break;
case 6:
digitalWrite(ledPins[offset + 0], HIGH);
digitalWrite(ledPins[offset + 1], HIGH);
digitalWrite(ledPins[offset + 2], HIGH);
digitalWrite(ledPins[offset + 3], HIGH);
digitalWrite(ledPins[offset + 4], HIGH);
digitalWrite(ledPins[offset + 5], HIGH);
break;
}
}