Bonjour à tous,
j'aurai besoin d'une idée pour faire avancer mon projet, svp.
Mon programme final fonctionne parfaitement: un dé électronique actionné par 4 boutons (4joueurs) à tour de rôle.
Je souhaite maintenant pouvoir choisir le nombre de joueur et pourvoir faire tourner ma boucle sur 1, 2, 3 ou 4 joueurs.
Pour la sélection du nombre de joueur, je verrai après (sélecteur, boutons, ...)
Ma question est celle-ci: que dois-je utiliser comme type de commande ou méthode pour faire ça dans mon programme.
Je pèche, j'aurai besoin que l'on m'aiguille un peu.
Merci d'avance
Ce post est mon premier de ma vie, je vais essayer de faire ça bien
const int bouton1 = A0;
const int bouton2 = A1;
const int bouton3 = A2;
const int bouton4 = A3;
int nbreAleatoire;
const int nombreled = 7;
int ledPins2 = 2;
int ledPins3 = 3;
int ledPins4 = 4;
int ledPins5 = 5;
int ledPins6 = 6;
int ledPins7 = 7;
int ledPins8 = 8;
int bouton_seq = 1;
int etatDuBouton1 = 0;
int etatDuBouton2 = 0;
int etatDuBouton3 = 0;
int etatDuBouton4 = 0;
int ledBouton1 = 9;
int ledBouton2 = 10;
int ledBouton3 = 11;
int ledBouton4 = 12;
/*
(6) (2)
(7) (5) (3)
(8) (4)
*/
void setup() {
randomSeed(analogRead(A6));
pinMode(bouton1, INPUT_PULLUP);
pinMode(bouton2, INPUT_PULLUP);
pinMode(bouton3, INPUT_PULLUP);
pinMode(bouton4, INPUT_PULLUP);
pinMode(ledPins2, OUTPUT);
pinMode(ledPins3, OUTPUT);
pinMode(ledPins4, OUTPUT);
pinMode(ledPins5, OUTPUT);
pinMode(ledPins6, OUTPUT);
pinMode(ledPins7, OUTPUT);
pinMode(ledPins8, OUTPUT);
pinMode(ledBouton1, OUTPUT);
pinMode(ledBouton2, OUTPUT);
pinMode(ledBouton3, OUTPUT);
pinMode(ledBouton4, OUTPUT);
}
void loop()
{
nbreAleatoire = random(1, 7);
if (bouton_seq == 1)
{
digitalWrite(ledBouton1, HIGH);
delay(50);
digitalWrite(ledBouton1, LOW);
delay(50);
int etatDuBouton1 = digitalRead(bouton1);
if (etatDuBouton1 == LOW)
{
digitalWrite(ledPins2, LOW);
digitalWrite(ledPins3, LOW);
digitalWrite(ledPins4, LOW);
digitalWrite(ledPins5, LOW);
digitalWrite(ledPins6, LOW);
digitalWrite(ledPins7, LOW);
digitalWrite(ledPins8, LOW);
}
while (etatDuBouton1 == LOW)
{
etatDuBouton1 = digitalRead(bouton1);
affichage();
bouton_seq = 2;
digitalWrite(ledBouton4, LOW);
digitalWrite(ledBouton1, HIGH);
}
}
if (bouton_seq == 2)
{
digitalWrite(ledBouton2, HIGH);
delay(50);
digitalWrite(ledBouton2, LOW);
delay(50);
int etatDuBouton2 = digitalRead(bouton2);
if (etatDuBouton2 == LOW)
{
digitalWrite(ledPins2, LOW);
digitalWrite(ledPins3, LOW);
digitalWrite(ledPins4, LOW);
digitalWrite(ledPins5, LOW);
digitalWrite(ledPins6, LOW);
digitalWrite(ledPins7, LOW);
digitalWrite(ledPins8, LOW);
}
while (etatDuBouton2 == LOW)
{
etatDuBouton2 = digitalRead(bouton2);
affichage();
bouton_seq = 3;
digitalWrite(ledBouton1, LOW);
digitalWrite(ledBouton2, HIGH);
}
}
if (bouton_seq == 3)
{
digitalWrite(ledBouton3, HIGH);
delay(50);
digitalWrite(ledBouton3, LOW);
delay(50);
int etatDuBouton3 = digitalRead(bouton3);
if (etatDuBouton3 == LOW)
{
digitalWrite(ledPins2, LOW);
digitalWrite(ledPins3, LOW);
digitalWrite(ledPins4, LOW);
digitalWrite(ledPins5, LOW);
digitalWrite(ledPins6, LOW);
digitalWrite(ledPins7, LOW);
digitalWrite(ledPins8, LOW);
}
while (etatDuBouton3 == LOW)
{
etatDuBouton3 = digitalRead(bouton3);
affichage();
bouton_seq = 4;
digitalWrite(ledBouton2, LOW);
digitalWrite(ledBouton3, HIGH);
}
}
if (bouton_seq == 4)
{
digitalWrite(ledBouton4, HIGH);
delay(50);
digitalWrite(ledBouton4, LOW);
delay(50);
int etatDuBouton4 = digitalRead(bouton4);
if (etatDuBouton4 == LOW)
{
digitalWrite(ledPins2, LOW);
digitalWrite(ledPins3, LOW);
digitalWrite(ledPins4, LOW);
digitalWrite(ledPins5, LOW);
digitalWrite(ledPins6, LOW);
digitalWrite(ledPins7, LOW);
digitalWrite(ledPins8, LOW);
}
while (etatDuBouton4 == LOW)
{
etatDuBouton4 = digitalRead(bouton4);
affichage();
bouton_seq = 1;
digitalWrite(ledBouton3, LOW);
digitalWrite(ledBouton4, HIGH);
}
}
}
int affichage()
{
digitalWrite(ledPins2, HIGH);
delay(50);
digitalWrite(ledPins3, HIGH);
delay(50);
digitalWrite(ledPins4, HIGH);
delay(50);
digitalWrite(ledPins5, HIGH);
delay(50);
digitalWrite(ledPins6, HIGH);
delay(50);
digitalWrite(ledPins7, HIGH);
delay(50);
digitalWrite(ledPins8, HIGH);
delay(50);
digitalWrite(ledPins8, LOW);
delay(50);
digitalWrite(ledPins7, LOW);
delay(50);
digitalWrite(ledPins6, LOW);
delay(50);
digitalWrite(ledPins5, LOW);
delay(50);
digitalWrite(ledPins4, LOW);
delay(50);
digitalWrite(ledPins3, LOW);
delay(50);
digitalWrite(ledPins2, LOW);
delay(50);
if (nbreAleatoire == 1) {
digitalWrite(ledPins5, HIGH);
}
if (nbreAleatoire == 2) {
digitalWrite(ledPins2, HIGH);
digitalWrite(ledPins8, HIGH);
}
if (nbreAleatoire == 3) {
digitalWrite(ledPins2, HIGH);
digitalWrite(ledPins8, HIGH);
digitalWrite(ledPins5, HIGH);
}
if (nbreAleatoire == 4) {
digitalWrite(ledPins2, HIGH);
digitalWrite(ledPins4, HIGH);
digitalWrite(ledPins6, HIGH);
digitalWrite(ledPins8, HIGH);
}
if (nbreAleatoire == 5) {
digitalWrite(ledPins2, HIGH);
digitalWrite(ledPins4, HIGH);
digitalWrite(ledPins5, HIGH);
digitalWrite(ledPins6, HIGH);
digitalWrite(ledPins8, HIGH);
}
if (nbreAleatoire == 6) {
digitalWrite(ledPins2, HIGH);
digitalWrite(ledPins3, HIGH);
digitalWrite(ledPins4, HIGH);
digitalWrite(ledPins6, HIGH);
digitalWrite(ledPins7, HIGH);
digitalWrite(ledPins8, HIGH);
}
}