Modifications

Sauter à la navigation Sauter à la recherche
7 octets ajoutés ,  4 avril 2025 à 21:30
Ligne 254 : Ligne 254 :  
* '''Ligne 29''' : transforme un nombre en sa représentation binaire. Pour rappel, la représentation binaire ne contient que le nombre de bits nécessaires. Par exemple si {{fname|new_value}} contient 3 alors {{fname|bin()}} produira la chaîne de caractères "0b11". La méthode {{fname|replace()}} enlève le préfixe "0b"... il ne reste que les bits.
 
* '''Ligne 29''' : transforme un nombre en sa représentation binaire. Pour rappel, la représentation binaire ne contient que le nombre de bits nécessaires. Par exemple si {{fname|new_value}} contient 3 alors {{fname|bin()}} produira la chaîne de caractères "0b11". La méthode {{fname|replace()}} enlève le préfixe "0b"... il ne reste que les bits.
 
* '''Lignes 30 et 31''' : Le représentation binaire dont nous avons besoin doit avoir 3 bits. Grâce à une astuce de formatage avec "%3s", la chaîne de caractères va être augmentée, si nécessaire, en 3 positions par insertion d'espace à gauche. Ainsi {{fname|"%3s" % "11"}} produira alors " 11". Pour une valeur de 5,  {{fname|"%3s" % "101"}} produira un contenu inchangé (donc "101"). Enfin, la ligne 31 permet de remplacer les espaces (ceux insérés par le formatage) par des "0". Dans l'exemple ci-avant {{fname|" 11".replace(" ","0")}} produira la chaîne de caractères "011".
 
* '''Lignes 30 et 31''' : Le représentation binaire dont nous avons besoin doit avoir 3 bits. Grâce à une astuce de formatage avec "%3s", la chaîne de caractères va être augmentée, si nécessaire, en 3 positions par insertion d'espace à gauche. Ainsi {{fname|"%3s" % "11"}} produira alors " 11". Pour une valeur de 5,  {{fname|"%3s" % "101"}} produira un contenu inchangé (donc "101"). Enfin, la ligne 31 permet de remplacer les espaces (ceux insérés par le formatage) par des "0". Dans l'exemple ci-avant {{fname|" 11".replace(" ","0")}} produira la chaîne de caractères "011".
−
* '''Lignes 34 et 35''' : la variable {{fname|s}} contient la représentation binaire du nombre aléatoire, par exemple "011" (3). Ainsi s[0] retourne le bit de poids fort (donc "0") tandis que s[2] retourne le bit de poids faible ("1"). Il se fait que la liste {{fname|LEDs}} est organisée dans le même ordre avec {{fname|LEDs[0]}} branché sur la LED indiquant l'état du bit 2 (bit de poids fort). Ainsi {{fname|LEDs[0].value( 1 )}} allume la LED du bit 2. Si la valeur 1 est remplacée par la valeur du bit de poids fort, donc {{fname|s[0]}} que l'on converti en entier à l'aide de {{fname|int(s[0])}} permet de modifier l'état de la LED de façon élégante. Pour résumer {{fname|LEDs[0].value( int(s[0]) )}} pour le poids fort, {{fname|LEDs[1].value( int(s[1]) )}} et {{fname|LEDs[2].value( int(s[2]) )}} pour le bit de poids faible. La boucle {{fname|for}} permet d'utiliser un index {{fname|i}} allant de 0 à 2.
+
* '''Lignes 34 et 35''' : la variable {{fname|s}} contient la représentation binaire du nombre aléatoire, par exemple "011" (3). Ainsi s[0] retourne le bit de poids fort (donc "0") tandis que s[2] retourne le bit de poids faible ("1"). Il se fait que la liste {{fname|LEDs}} est organisée dans le même ordre avec {{fname|LEDs[0]}} branché sur la LED indiquant l'état du bit 2 (bit de poids fort). Ainsi {{fname|LEDs[0].value( 1 )}} allume la LED du bit 2. Ainsi, si la valeur 1 est remplacée par la valeur du bit de poids fort, donc {{fname|s[0]}} que l'on converti en entier à l'aide de {{fname|int(s[0])}} permet de modifier l'état de la LED de façon élégante. Pour résumer {{fname|LEDs[0].value( int(s[0]) )}} pour le poids fort, {{fname|LEDs[1].value( int(s[1]) )}} et {{fname|LEDs[2].value( int(s[2]) )}} pour le bit de poids faible. La boucle {{fname|for}} permet d'utiliser un index {{fname|i}} allant de 0 à 2.
 
* '''Lignes 37 et 39''' : Insertion d'une pause d'une demi-seconde pour laisser le temps de retirer le doigt du bouton (et éviter une seconde activation par rebond) avant de réinitialiser le compteur de détection.
 
* '''Lignes 37 et 39''' : Insertion d'une pause d'une demi-seconde pour laisser le temps de retirer le doigt du bouton (et éviter une seconde activation par rebond) avant de réinitialiser le compteur de détection.
  
32 920

modifications

Menu de navigation