| Ligne 240 : |
Ligne 240 : |
| | * '''Ligne 4 à 13''' : mise en place de la détection du bouton (voir le projet [[P2E-MELODIC-BELL|sonnette]]). | | * '''Ligne 4 à 13''' : mise en place de la détection du bouton (voir le projet [[P2E-MELODIC-BELL|sonnette]]). |
| | * '''Ligne 14''' : Déclaration de la liste {{fname|LEDs}} contenant les instances de broches configurées en sortie. La première entrée de la liste {{fname|LEDs[0]}} correspond au bit 2 (poids le plus fort). La deuxième entrée {{fname|LEDs[1]}} correspond au bit 1. La troisième entrées {{fname|LEDs[2]}} correspond au bit 0 (poids le plus faible). Il se fait que c'est aussi dans ce même ordre que {{fname|bin()}} fournit les différents bits. En effet, {{fname|bin(6)}} => "0b110" et si l'on retire le "0b" nous avons une chaîne de caractères "110" où "110"[0] est le bit de poids fort (bit 2) et "110"[2] est le bit de poids faible (bit 0). | | * '''Ligne 14''' : Déclaration de la liste {{fname|LEDs}} contenant les instances de broches configurées en sortie. La première entrée de la liste {{fname|LEDs[0]}} correspond au bit 2 (poids le plus fort). La deuxième entrée {{fname|LEDs[1]}} correspond au bit 1. La troisième entrées {{fname|LEDs[2]}} correspond au bit 0 (poids le plus faible). Il se fait que c'est aussi dans ce même ordre que {{fname|bin()}} fournit les différents bits. En effet, {{fname|bin(6)}} => "0b110" et si l'on retire le "0b" nous avons une chaîne de caractères "110" où "110"[0] est le bit de poids fort (bit 2) et "110"[2] est le bit de poids faible (bit 0). |
| | + | * '''Lignes 16 et 17''' : passe toutes les LEDs en revue et place la broche au niveau bas. |
| | + | * '''Ligne 19''' : déclaration de la variable {{fname|old_value}} contenant la valeur du dé généré au tour précédent. La 0 est placé dans la variable puisqu'il n'y a pas encore de valeur précédente. |
| | + | * '''Ligne 20''' : boucle infinie sur les lignes 21 à 41 pour détecter: |
| | + | *# la pression du bouton, |
| | + | *# généré un nombre aléatoire |
| | + | *# afficher la valeur sur les LEDs |
| | + | * '''Lignes 21, 40, 41''' : Détecte '''si''' le bouton est pressé (donc exécution de 22 à 39) '''sinon''' instaurer une pause de 200ms avant la prochaine tentative de détection. |
| | + | * '''Ligne 22''' : a ce state, le bouton à été pressé. La première opération est de générer un nombre aléatoire entre 1 et 6. |
| | + | * '''Lignes 23 et 24''' : si la nouvelle valeur {{fname|new_value}} est identique à la précédente alors la boucle {{fname|while}} générera une nouvelle valeur aléatoire. |
| | + | {{tmbox | text = D'un point de vue aléatoire, il est tout a fait possible de tirer deux fois le chiffre "5" à la suite.<br />Cependant, comme il n'y a pas de lancé de dé, il n'est pas possible de voir qu'un second tirage identique a été effectué. L'utilisateur pourrait croire que la pression du bouton n'a pas été détecté par le programme.<br />Pour éviter cet état de fait, le script génère un nombre différent du cycle précédent. }} |
| | | | |
| | == Ressources == | | == Ressources == |