#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 };