47 lines
1.4 KiB
C
47 lines
1.4 KiB
C
#define ALPHABET_SIZE 26
|
|
#define WHEELS_AMOUNT 3
|
|
|
|
// Латинский алфавит в HEX представлении
|
|
const String key_values[ALPHABET_SIZE] =
|
|
{
|
|
"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[WHEELS_AMOUNT] =
|
|
{
|
|
1,
|
|
2,
|
|
5
|
|
}; |