Etape 11 : Fonction principale
C’est la fonction principale qui boucle maintes et maintes fois.La première chose à que faire est de mettre à jour chaque tableau de bord avec le score. Ils seront tous deux fixés à zéro au début du jeu parce que player1Points et player2Points sont initialisés à zéro dans la configuration.digitalWrite (latch1, basse) ;
shiftOut (data1, l’horloge1, MSBFIRST, ~ digitOne[player1Points]) ;
shiftOut (data1, l’horloge1, MSBFIRST, ~ digitTwo[player2Points]) ;
digitalWrite (latch1, HIGH) ;
Si ou l’autre du joueur gagne, la célébration fonction est appelée if(player1Points >= score) {}
player1Celebrate() ;
}
Si (player2Points > = score)
{
player2Celebrate() ; }
Cette partie suivante mappe les valeurs du potentiomètre et stocke la position du potentiomètre en tant que valeur. Cette valeur deviendra alors la quantité de temps inbetween chaque LED. Par exemple, si val est 100, puis le programme allume une LED dans la bande de LED et ensuite attendre 100 millisecondes avant la prochaine LED s’allumant. int val = analogRead(pot) ;
Val = carte (val, 0, 1023, 1, 100);
Cette partie suivante détermine s’il faut envoyer les LED vers le joueur 1 ou joueur 2. si (drapeau == « F »)
{
chaseForward (bande. Couleur (127, 0, 0), val) ;
}
Si (drapeau == « R »)
{
chaseReverse (bande. Couleur (0, 0, 127), val) ;
} Enfin, le programme détermine si l’autre joueur appuie sur son bouton dans le temps quand la « boule » est dirigée leur façon. Si elles n’appuyez pas sur elle dans le temps, le programme envoie la balle à l’arrière. int AbuttonState = digitalRead(player1) ; si (AbuttonState == LOW & & tourner == « A » & & drapeau! = « F » & & drapeau! = « R »)
{
i = 0 ;
Désactive la LED player 1
digitalWrite (latch2, basse) ;
shiftOut (data2, l’horloge2, MSBFIRST, 255) ;
digitalWrite (latch2, HIGH) ;
chaseForward (bande. Couleur (0, 0, 127), val) ; Blanc
}
int BbuttonState = digitalRead(player2) ;
si (BbuttonState == LOW & & tourner == « B » & & drapeau! = « F » & & drapeau! = « R »)
{
J’ai = 30 ;
Désactive le joueur 2 LEDs
digitalWrite (latch3, basse) ;
shiftOut (data3, clock3, MSBFIRST, 255) ;
digitalWrite (latch3, HIGH) ;
chaseReverse (bande. Couleur (0, 127, 127), val) ; Rouge
}
Code de fonction principale ici