Paso 11: Función principal
Esta es la función principal que coloca una y otra vez.Lo primero que hacemos es actualizar cada marcador con la puntuación. Ellos ambos se establecerá en cero al principio del juego porque player1Points y player2Points se inicializan a cero en el programa de instalación.digitalWrite (latch1, bajo);
shiftOut (data1, clock1, MSBFIRST, ~ digitOne[player1Points]);
shiftOut (data1, clock1, MSBFIRST, ~ digitTwo[player2Points]);
digitalWrite (latch1, HIGH);
Si bien el jugador gana, la celebración se llama la función if(player1Points >= score) {}
player1Celebrate();
}
Si (player2Points > = puntuación)
{
player2Celebrate(); }
Esta siguiente parte asigna los valores del potenciómetro y almacena la posición del potenciómetro como un valor. Ese valor convertirá en la cantidad de tiempo entre cada LED. Por ejemplo, si val es 100, entonces el programa enciende un LED en la tira de LED y espera 100 milisegundos antes de encender el LED siguiente. int val = analogRead(pot);
Val = mapa (val, 0, 1023, 1, 100);
Esta parte siguiente determina si se envía el LED hacia el jugador 1 o jugador 2. si (bandera == 'F')
{
chaseForward (de la tira. Color (127, 0, 0), val);
}
Si (bandera == 'R')
{
chaseReverse (de la tira. Color (0, 0, 127), val);
} Por último, el programa determina si el otro jugador presiona el botón a tiempo cuando la 'bola' se dirigían hacia ellos. Si presiona en el tiempo, el programa envía el balón hacia atrás. int AbuttonState = digitalRead(player1); si (AbuttonState == baja & & convertir == 'A' & & bandera! = 'F' & & bandera! = 'R')
{
i = 0;
Se apaga el LED de la jugador 1
digitalWrite (latch2, LOW);
shiftOut (data2, clock2, MSBFIRST, 255);
digitalWrite (latch2, HIGH);
chaseForward (de la tira. Color (0, 127, 0), val); Blanco
}
int BbuttonState = digitalRead(player2);
si (BbuttonState == baja & & convertir == 'B' & & bandera! = 'F' & & bandera! = 'R')
{
i = 30;
Apaga el reproductor de 2 LEDs
digitalWrite (latch3, bajo);
shiftOut (data3, clock3, MSBFIRST, 255);
digitalWrite (latch3, HIGH);
chaseReverse (de la tira. Color (127, 0, 127), val); Rojo
}
Código de función principal aquí