enigma/enigma_types.h

59 lines
1.7 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Латинский алфавит в HEX представлении
const String key_values[26] =
{
"51", // Code51 - q
"57", // Code57 - w
"45", // Code45 - e
"52", // Code52 - r
"54", // Code54 - t
"59", // Code59 - y
"55", // Code55 - u
"49", // Code49 - i
"4F", // Code4F - o
"50", // Code50 - p
"41", // Code41 - a
"53", // Code53 - s
"44", // Code44 - d
"46", // Code46 - f
"47", // Code47 - g
"48", // Code48 - h
"4A", // Code4A - j
"4B", // Code4B - k
"4C", // Code4C - l
"5A", // Code5A - z
"58", // Code58 - x
"43", // Code43 - c
"56", // Code56 - v
"42", // Code42 - b
"4E", // Code4E - n
"4D" // Code4D - m
};
// Сдвиг в алфавите для каждого из трёх "дисков".
// Обязан быть в отрезке [0; 25], так как полный круг
// возвращает значение обратно в 0.
// Таким образом, при конфигурации { 1, 2, 5 } и
// нажатой ' d ' сначала произойдёт сдвиг на 1, ' d '
// станет ' f ', потом на 2, ' f ' станет ' h ',
// в конце ещё сдвиг на 5 и ' h ' станет ' x '.
const size_t key_shifts[3] =
{
1,
2,
5
};
// Соединение на коммутационной панели
struct Plug
{
size_t left_index = 0;
size_t right_index = 0;
};
// Все соединения коммутационной панели.
// Для примера всего 2, но может быть до 13
const Plug plugboard[2] =
{
{0, 1}, // ' q ' <- -> ' w '
{4, 10} // ' t ' <- -> ' a '
};