Juego infantil para Arduino Enigma máquina (8 / 10 paso)

Paso 8: El código: rotores

Se trata de una descripción mas detallada de los rotores en el programa.  Básicamente define los rotores como esta:

const char rI [26] = {'E',
'K',
SOY ',
'F',
'L',
'G',
HABÍA ',
'Q',
'V',
'Z',
' N ',
' T ',
' O ',
'W',
'Y',
'H',
'X',
'U',
DE ',
'P',
'A',
'I',
'B',
'R',
'C',
'J'};

const char rII [26] = {'A',
'J',
HABÍA ',
'K',
DE ',
'I',
'R',
'U',
'X',
'B',
'L',
'H',
'W',
' T ',
SOY ',
'C',
'Q',
'G',
'Z',
' N ',
'P',
'Y',
'F',
'V',
' O ',
'E'};

char la rIII [26] = {'B',
HABÍA ',
'F',
'H',
'J',
'L',
'C',
'P',
'R',
' T ',
'X',
'V',
'Z',
' N ',
'Y',
'E',
'I',
'W',
'G',
'A',
'K',
SOY ',
'U',
DE ',
'Q',
'O'};

Puede preguntar "por qué no solo definirlos como una cadena, esto parece de mano".  En otras palabras, por qué no hacerlo como esta:

char el rotI [26] = "" EKMFLGDQVZNTOWYHXUSPAIBRCJ "

Admito esto hace mucho más código, pero para mí tiene más sentido visualmente para ver hacia abajo (no puedo pensar en un tiempo que he hecho esto antes, pero con esto creo que funciona).  Básicamente ya que estas son rotores (me copia de los valores de una máquina de papel de Enigma) entonces que es lo que elegí para hacerlo.

Además de definir los reflectores definí qué número cada rotor debe encender el rotor siguiente.  En otras palabras, cuando RI está en la posición 17, debe girar el rotor a la izquierda.

const int spinRI = 17;
const int spinRII = 5;
const int spinRIII = 22;

Porque los rotores se pueden poner en cualquiera de las tres ranuras que ves en la pantalla copiar los valores de giro constante en enteros que cambian en cualquier momento un rotor diferente se pone en una ranura (r1 es la izquierda la mayoría rotor, r2 es el rotor de centro, r3 es el derecha rotor más).

int spin_r1 = spinRI;
int spin_r2 = spinRII;
int spin_r3 = spinRIII;

Seguimiento de las siguientes variables que el rotor es en qué ranura.  Se utiliza para saber cuando cambiar rotores en una ranura que rotor siguiente será

int cur_r1 = 1;
int cur_r2 = 2;
int cur_r3 = 3;

También definir el reflector.  Básicamente lo que esto dice es si una entrada viene en la posición 3, entonces debe ir hacia atrás posición 7 por ejemplo (ya que el valor en la posición 3 7).  El reflector básicamente envía la señal a través de los rotores en orden inverso

reflector int [26] = {24,
17,
20,
7,
16,
18,
11,
3,
15,
23,
13,
6,
14,
10,
12,
8,
4,
1,
5,
25,
2,
22,
21,
9,
0,
19};

Estos son marcadores de posición de la matriz actual del rotor en las posiciones 1, 2 y 3 en la pantalla
char rotor1 [26];
char rotor2 [26];
char rotor3 [26];

Nota: La imagen en este paso es de Wikipedia

Artículos Relacionados

Añadir dispositivo de juego USB para Arduino Leonardo/Micro

Añadir dispositivo de juego USB para Arduino Leonardo/Micro

Nota importante: Este artículo es para IDE de Arduino versión 1.6.5 (o inferior). Para agregar un dispositivo de juego USB a un Arduino Leonardo o Micro mediante Arduino IDE versión 1.6.6 (o superior) ver el Instructable siguiente: Arduino Leonardo M
Juego protector del RGB LED para arduino

Juego protector del RGB LED para arduino

me preguntaba por qué no hay un montón de juegos hecho por arduino, quiero decir que encontré una página de ellos, pero no fue tht muchos. Así que he decidido que debo tratar de hacer uno de mi propia!Para jugar este juego, usted tiene que emparejar
CupBots - 3D plataforma robótica impresa para Arduino y frambuesa Pi

CupBots - 3D plataforma robótica impresa para Arduino y frambuesa Pi

Aquí es un proyecto de robótica de gran fin de semana para emprender con amigos o gente en su espacio local del fabricante. Usted necesitará una impresora 3D práctico 3D impresión los archivos STL adjuntan como parte de los pasos a continuación y una
Caja para Arduino con corte láser - Uno, Mega, Leonardo, Yun

Caja para Arduino con corte láser - Uno, Mega, Leonardo, Yun

Una caja para nuestras tarjetas Arduino, es un gran aliado para protegerlas y manipularlas de forma más sencilla. ¿Y qué mejor forma para conseguir una caja para tu Arduino fabricarla tú mismo?En este Instructable encontrarás los archivos para fabric
Juego archivo usando arduino

Juego archivo usando arduino

este es un circuito simple para reproducir archivos wav usando arduino Nano V3.0, consta de 4 botones, cada uno reproducir archivo wav específico cargado a la tarjeta SD.Paso 1: partes 1-Arduino Nano V3.0 (yo usé la versión de chino llamada Funduino
Hambre de Minecraft Juegos Videos | Juegos Videos para niños | Juegos de Spiderman Videos 2 - Unidos de juegos

Hambre de Minecraft Juegos Videos | Juegos Videos para niños | Juegos de Spiderman Videos 2 - Unidos de juegos

¿Qué pasa chicos, juegos de Reino, y hoy tengo un nuevo video en YouTube consejos que voy a responder la pregunta "¿Qué hago si mi canal no está creciendo ya?". Si ustedes chicos han afectado a una meseta, voy a estar dando maneras de volver a c
Escudo de ECG para Arduino

Escudo de ECG para Arduino

Recientemente hice shield para arduino que puede medir ECG, respiración, finalmente después de algunos cambios en el PCB y el código, EEG y EMG. Gran ventaja de este escudo es la posibilidad de hacer fácilmente en casa. El escudo está equipado con pa
RGB LCD Shield para Arduino 65K color KIT V2 Asamblea guía

RGB LCD Shield para Arduino 65K color KIT V2 Asamblea guía

protector de la pantalla RGB para Arduino 65K color KIT incluye todos los componentes para armar una lista para usar protector de pantalla LCD para Arduino y placas compatibles como Freeduino.(visita http://store.nkcelectronics.com/rgb-lcd-shield-for
Jugar un juego con un Arduino desnudo

Jugar un juego con un Arduino desnudo

"Push-It"Juego interactivo utilizando una placa Arduino desnudo, sin partes externas o cableado necesario.Empuje-tiene dos propósitos.Para demostrar/verificar rápidamente que trabaja tu placa Arduino y que está configurados correctamente para de
Guían de experimentadores para Arduino ya que se realiza en OIT

Guían de experimentadores para Arduino ya que se realiza en OIT

recursosAdafruit ARDX - v1.3 juego de experimentación para ArduinoGuía de los experimentadores para Arduino (PDF)Diseños de tablero de pan (PDF)Tutorial de Arduino Bundle (instructivo)Este Arduino Tutorial va a ser muy similar a la Arduino Tutorial p
LittleBits Arduino molesto máquina

LittleBits Arduino molesto máquina

Esto es un poco máquina de mi hijo y construí con littleBits. Construido alrededor de littleBits Arduino, esta máquina suena el zumbador a intervalos al azar, que el botón de la persona molesta a veces al azar. Es un prototipo poco agradable de una f
WS2812B LED cubo 96 para arduino magia colorido

WS2812B LED cubo 96 para arduino magia colorido

Hey, chicos, esta es la cuarta vez (prototipos inteligentes) publicamos un instructivo aquíGracias por ver! Nosotros a seguir posteando en instructables divertido. Esto es un cubo mágico LED, esperamos sea útil para usted y nos encantaría comunicarno
Interconexión de circuitos electrónicos para Arduinos

Interconexión de circuitos electrónicos para Arduinos

interconexión de circuitos electrónicos para ArduinoEn este instructable utilizo un ejemplo de interfaz un Arduino a un transmisor-receptor de ARINC 429 para demostrar el proceso general de interconexión un Arduino a circuitos electrónicos para poder
Indicador de dirección para Arduino Robot - interfaz Scratch

Indicador de dirección para Arduino Robot - interfaz Scratch

Recientemente he subido a una guía de la programación de un Cybot utilizando un control de Arduino. En la programación que he creado una interfaz de usuario para visualizar la dirección seleccionada por el usuario. Esta guía le mostrará que haw para