| Ligne 206 : |
Ligne 206 : |
| | * '''Lignes 57 à 64''' : sont identiques aux lignes 47 à 54 exception fait que cela s'applique au joueur 2 (donc led2, btn2, btn2_pressed). | | * '''Lignes 57 à 64''' : sont identiques aux lignes 47 à 54 exception fait que cela s'applique au joueur 2 (donc led2, btn2, btn2_pressed). |
| | * '''Lignes 67 à 72''' : initialisation des derniers éléments, le bouton "Start", la LED de statut et le `buzzer` comme élément sonore. La classe {{fname|RingTonePlayer}} [[P2E-Buzzer-Music-FR|était abordé dans ce tutoriel]]. | | * '''Lignes 67 à 72''' : initialisation des derniers éléments, le bouton "Start", la LED de statut et le `buzzer` comme élément sonore. La classe {{fname|RingTonePlayer}} [[P2E-Buzzer-Music-FR|était abordé dans ce tutoriel]]. |
| | + | * '''Ligne 77''' : configuration de la LED de statut {{fname|led_status}} en mode clignotant (BLINK). |
| | + | * '''Lignes 78 à 80''': boucle {{fname|while}} attendant que l'on presse sur le bouton "Start". Dans l'attente l'appel à la méthode {{fname|led_status.update()}} permet de faire clignoter la LED à intervalle régulier. |
| | + | * '''Ligne 81''' : le bouton "Start" a été pressé, la LED de statut est éteinte. |
| | + | * '''Ligne 82''' : boucle {{fname|while}} infinie permettant de jouer round après round. Le corps du script situé entre les lignes 83 à 137 permet donc de jouer un round. |
| | + | |
| | + | Exécution d'un round |
| | + | |
| | + | * '''Ligne 90''' : utilisation de fonction {{fname|randint(3,10)}} pour générer un nombre aléatoire entre 3 et 10 secondes. Cette valeur est multipliée par 1000 pour obtenir une valeur en millisecondes. Cette valeur est stockée dans la variable {{fname|wait_ms}} . |
| | + | * '''Lignes 91 à 92''' : réinitialiser les variables {{fname|first_btn1}} et {{fname|first_btn2}} à '''None''' (bouton pas encore pressé). |
| | + | * '''Ligne 93''' : jouer la mélodie de début de jeu. |
| | + | * '''Ligne 101''' : capture du nombre de millisecondes écoulée dans {{fname|start_ms}}. Cela permet de mesurer l'écoulement du temps. |
| | + | * '''Ligne 102''' : initialisation de la variable {{fname|_led}} à '''None'''. Cette variable sera initialisée à {{fname|led1}} ou {{fname|led2}} pour désigner le joueur (gagnant ou perdant). |
| | + | * '''Lignes 103 à 109''' : boucle d'attente de 0 à {{fname|wait_ms}} millisecondes avant d'envoyer le signal "GO". Si un joueur presse son bouton durant ce laps de temps, alors la variable correspondant {{fname|first_btnX}} est initialisée (donc différent de '''None'''). |
| | + | * '''Ligne 106''' : expression ternaire qui initialise {{fname|_led}} à {{fname|led1}} ou {{fname|led2}} en fonction du bouton pressé. Cela identifie le perdant! |
| | + | * '''Ligne 107 à 109''' : allumer la LED du joueur perdant, jouer la musique "Perdu" et interrompre la boucle d'attente avec l'instruction {{fname|break}} . |
| | + | * '''Ligne 110''' : lorsque le script passe sur cette ligne: (1) soit le temps d'attente est terminé, (2) soit un joueur à pressé sur son bouton trop tôt! |
| | | | |
| | == Un problème? == | | == Un problème? == |