Étape 7: La Code : présentation
La viande du code est assez simple. J’ai un tableau pour chaque type de rotor, puis j’ai juste besoin de garder une trace de ce rotor était dans quel slot, et quelle position le rotor était actuellement en. Probablement la meilleure façon de comprendre ce que le code doit faire est de passer par l’exemple de cette machine enigma de papier. http://mckoss.com/Crypto/Paper%20Enigma.pdf . Fondamentalement, il faut prendre l’indice des entrées, regardez de quelle lettre est à cet endroit, puis comprendre quel slot qui doit être mappé sur (il s’agit essentiellement de l’endroit où la lettre se termine dans un tableau de caractères de l’alphabet et l’offset du rotor).Le code doit également gérer les rotors mobiles. Le droit la plupart rotor déplace un endroit chaque fois qu’une touche est enfoncée. Le rotor central se déplace lorsque le droit rotor la plupart atteint une certaine valeur (donc il tournera 1/26 des fois que celle de droite se tourne). Le rotor gauche tourne 1/26 des temps que le centre rotor tourne. Pour ce faire j’ai int qui assure le suivi de la position actuelle du rotor et en ajouter un à lui quand ils ont besoin de tourner. Quand ils arrivent à 26 j’ai eux mis à 0 (il est allé tout le pourtour du rotor donc nous commençons à nouveau).
Pour échanger des rotors, j’ai simplement strncpy constantes du rotor avec le rotor dans le poste.
Vous remarquerez que j’ai utilisé beaucoup de l’exemple de code dans mon code pour faire des choses comme jouer des sonneries, obtenez les valeurs de clavier et aborder les LCD I2C. Je suis un grand fan des bibliothèques et l’exemple de code.