Kid's Game met Arduino Enigma Machine (9 / 10 stap)

Stap 9: De Code: codering


Het eerste wat we doen is de juiste meeste rotor spin, en spin de anderen als we moeten (afhankelijk van de spin waarden die we eerder gedefinieerd)

pos_rotor3 += 1;
if(pos_rotor3 > 25)
{
pos_rotor3 = 0;
}

if(pos_rotor3 == spin_r3)
{
pos_rotor2 += 1;
if(pos_rotor2 > 25)
{
pos_rotor2 = 0;
}
if(pos_rotor2 == spin_r2)
{
pos_rotor1 += 1;
if(pos_rotor1 > 25)
{
pos_rotor1 = 0;
}
}
}

Deze functie is in principe waar alle magie gebeurt.  Een waarde wordt ingevoerd naast de waarden van de rotor en de verschuiving van de rotor is momenteel op.  Het uitgangen de letter die uit dat ene rotor voortkomen zou.

Dit is echt niet veel meer dan een eenvoudige teken subsitution.  Een echte Enigma machine deed dit met draden binnen een rotor.  Wij doen dit meerdere keren, één voor elke rotor gaan vooruit, dan we het door middel van de reflector, dan terug via de rotors sturen.

int get_rotor_output (int index char rot [], char rotIndex [], int pos_rot)
{

eerste wat die we moeten doen is de rotor positie toe te voegen aan de index om erachter te
welke brief zijn we echt op
index += pos_rot;

Als de index meer dan 25 is heb dan we gewikkeld rond het einde van de array
dus we zullen aftrekken 26 uit om naar het echte teken
if(index > 25)
{
index-= 26;
}

nu uitzoeken we van de index van de letter in het alfabet
dat wil zeggen A = 0, B = 1, C = 2, etc.
dan grijpen we de letter in dezelfde positie in de matrix van de rotor
Dit is hoe wij de tekens vervangen
char tmp_letter = rot [find_index (rotIndex, alpha[index])];

nu krijgen we de index van de brief die output in het alfabet was
hetzelfde idee als boven A = 0, B = 1., enz
index = find_index (alpha, tmp_letter);

Nu aftrekken we de positie van de rotor van de index die uitvoer was
index-= pos_rot;

Als de index kleiner dan 0 is, hebben dan we verpakt uit het begin
van de matrix, dus voegen we 26 ernaar terug te krijgen in de matrix
if(index < 0)
{
index += 26;
}

nu laten we retourneer de index
Retourneer index;
}

Opmerking: De afbeelding in deze stap is uit Wikipedia

Gerelateerde Artikelen

Een schattige Kids speelgoed dat met Arduino en eenheid spreekt :)

Een schattige Kids speelgoed dat met Arduino en eenheid spreekt :)

Bekijk de video voor een demonstratie.Dit project is puur uit verveling, was ik experimenteren met een flex-sensor wanneer het idee kwam bij me, oorspronkelijk was bedoeld om het gebruik van een flex-sensor, maar na een tweede gedachte die dezelfde r
Stelen de Bacon Game met Arduino

Stelen de Bacon Game met Arduino

dit is wat u zult moeten maken een Arduino aangedreven stelen het spek spel:10 x LEDs11 x 330 Ohm weerstanden1 x 10 k Ohm weerstand1 x knop1 x schakelaar1 x Buzzer19 x Jumper draden1 x Breadboard of Perfboard1 x Arduino Mega 2560 of Arduino UnoDit na
8 x 8 x 8 LED kubus met Arduino Mega (+ geluid + PS controller + Game)

8 x 8 x 8 LED kubus met Arduino Mega (+ geluid + PS controller + Game)

dit is een instructable die is gebaseerd op de kubusdoor Chr, (door SuperTech-IT, (en door das-labor.org, (http://www.das-labor.org/wiki/Borg3d_Bauanleitung...)maar ik denk dat haar beter en gemakkelijker.Ik begon dit Project zonder enige vaardighede
Arduino klauw Machine

Arduino klauw Machine

WAT?Machine is ongeveer 1:4 schaal, perfect voor snoep en andere kleine speelgoed/prijzen. Voetafdruk is ~ 20 x 26 x 19 inch, gemaakt van aluminium extrusie, aangepaste laser gesneden acryl/hout, stappenmotoren (Nema17) en een Arduino Mega. Stappenmo
Programmering ESP8266 ESP-12E NodeMCU v1.0 met Arduino IDE in draadloze temperatuur logger

Programmering ESP8266 ESP-12E NodeMCU v1.0 met Arduino IDE in draadloze temperatuur logger

Terug in eind 2014 en begin 2015, uw echt kwamdeze handige WiFi Chip ESP8266 (de ESP-01) en moeten vechten onder de inconsistente documentatie uit verschillende bronnen. Vooralsnog uitloper gedocumenteerd hij zijn frustraties (bevindingen) als een in
PuttDuino putt-putt gat met arduino

PuttDuino putt-putt gat met arduino

mijn bedrijf heeft jaarlijkse evenementen waar we allemaal samen te komen voor leuk - om te blazen stoom af en hebben een beetje concurrentie. In het verleden hebben we Softbal en bowling competities. Dit jaar iemand had een bron van inspiratie: elke
Streaming video van SD-kaart naar Nokia LCD met Arduino

Streaming video van SD-kaart naar Nokia LCD met Arduino

Voor een lange tijd, ik dacht dat het afspelen van video met kon audio niet op de Arduino. Toen op een dag besloot ik te geven het een schot en het bleek eenvoudiger dan ik dacht.Ik besloot te schrijven van de stappen in een instructable ten behoeve
Gemotoriseerd, geluid reageren Star Wars At-St Bandai Model, met Arduino.

Gemotoriseerd, geluid reageren Star Wars At-St Bandai Model, met Arduino.

Gemaakt van Star Wars bij-St-Model van Bandai.Reageert op geluid en draait zijn hoofd naar toe.Gemaakt met Arduino Nano, een aangepast onderdeel van 3dprinted, microfoons, micro servo.Dit instructable is gemaakt om te delen van de wijzigingen die nod
KeyChainino - de eerste spel sleutelhanger programmeerbare met Arduino

KeyChainino - de eerste spel sleutelhanger programmeerbare met Arduino

KeyChainino is een vintage spel sleutelhanger programmeerbare met Arduino waar iedereen zijn eigen spel alleen met de Arduino IDE uploaden kunt.Als je echt Arcade Game liefde, is KeyChainino voor jou!Het hoeft niet elke LCDs, maar slechts 30 LEDs gec
IoT stopcontact met Arduino en ESP8266

IoT stopcontact met Arduino en ESP8266

In dit instructable, ik u tonen hoe verbeterde toegankelijkheid, intelligentie en connectiviteit toevoegen aan een gewone stopcontact. Dit wordt gedaan met een combinatie van microcontrollers, Arduino, diverse sensoren, ESP8266 en een mix van softwar
Mok muziek: Water omzetten in een Instrument met Arduino en ChucK

Mok muziek: Water omzetten in een Instrument met Arduino en ChucK

Wat als u kon veranderen elk geleidende oppervlak tot een instrument? Zoals, zeggen... een mok water? Het beste van allen, is het goedkoop; u moet slechts 1 dollar waard van extra elektrische componenten (niet met inbegrip van de Arduino).Voor dit pr
Google weer op grafisch display met Arduino

Google weer op grafisch display met Arduino

In dit project, ben ik met behulp van een Arduino board voorspelling van het weer uit Google weer service op een VGA scherm weergeven. Het display is duidelijk grafische, met iconen en sommige kleurrijke tekst. Het is een van die gadgets die ik wilde
Android praat met Arduino

Android praat met Arduino

dit project iets wijzigt de Google Android monster app genaamd "Bluetooth Chat" zodat u kunt een bericht typen in de Android app en die dezelfde boodschap op een LCD-scherm die is gekoppeld aan een Arduino Uno verschijnt.Functionaliteit: Android
Mijn luidruchtige jas (Arduino Noise Machine Jacket)

Mijn luidruchtige jas (Arduino Noise Machine Jacket)

Als een project voor een van mijn college klassen, werden we gevraagd om iets met behulp van de Arduino te creëren. Na een paar verschillende ideeën vestigde ik op een Arduino ruis machine stelt in een pak jasje. Het delen van de jas gebruikt om te l