Modifications

Sauter à la navigation Sauter à la recherche
71 octets ajoutés ,  4 avril 2025 à 21:26
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]}}. 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 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. 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.
    
== Ressources ==
 
== Ressources ==
32 920

modifications

Menu de navigation