const int buttonPin = A1;
const int ledPins[] = {1, 2, 3, 4, 5, 6};
const int numLeds = 6;
void setup() {
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
}
pinMode(buttonPin, INPUT_PULLUP);
randomSeed(analogRead(0)); // Seed random
}
void loop() {
if (digitalRead(buttonPin) == LOW) {
// Random blinking animation for 3 seconds
unsigned long startTime = millis();
while (millis() - startTime < 3000) {
int r = random(0, numLeds);
digitalWrite(ledPins[r], HIGH);
delay(50);
digitalWrite(ledPins[r], LOW);
}
// Pick and show random number between 1 and 6
int diceRoll = random(1, 7); // 1 to 6
clearLeds();
showRandomLeds(diceRoll);
delay(4000); // Hold result for 4 seconds
clearLeds();
}
}
void clearLeds() {
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], LOW);
}
}
void showRandomLeds(int count) {
int selected[6] = {0};
int lit = 0;
while (lit < count) {
int r = random(0, numLeds);
if (selected[r] == 0) {
digitalWrite(ledPins[r], HIGH);
selected[r] = 1;
lit++;
}
}
}