Stap 7: De Code: overzicht
Het vlees van de code is vrij eenvoudig. Ik heb een matrix voor elk type rotor, dan ik nodig om bij te houden welke rotor was in welke sleuf, en momenteel welke positie de rotor was. Waarschijnlijk is de eenvoudigste manier om erachter te komen wat de code moet doen om te gaan door het voorbeeld van dit papier enigma-machine. http://mckoss.com/Crypto/Paper%20Enigma.pdf . In feite moeten we de input index, kijken welke brief is in die plek, dan uitzoeken wat dat slot moet toewijzen aan (het is eigenlijk de waar de brief eindigt in een char-matrix van het alfabet en de offset van de rotor).De code moet ook omgaan met de rotors verplaatsen. De juiste meeste rotor bewegingen een plek elke keer dat een sleutel wordt geduwd. De middelste rotor verplaatst wanneer het recht de meeste rotor hits een bepaalde waarde (dus 1/26 van de tijd die de juiste keuze maakt zal het weer). De linker rotor draait 1/26 van de tijden die de center-rotor draait. Om dit te doen ik heb een int die spoor van de huidige positie van de rotor houdt en overigens een aan wanneer ze nodig hebben om te schakelen. Wanneer ze tot en met 26 ingesteld ik hen terug naar 0 (het ging helemaal rond de rotor zodat we opnieuw beginnen).
Omwisselen rotoren ik gewoon strncpy de rotor-constanten zijn aan de rotor in voor de positie.
U zult merken dat ik gebruikte een heleboel voorbeeldcode in mijn code om dingen te doen zoals tonen spelen, toetsenbord waarden krijgen en de I2C-LCD pakken. Ik ben een grote fan van bibliotheken en voorbeeldcode.