Если передать на вход действие не 1 и не 2, то все упадет с ошибкой, т.к. функция в словаре move не будет найдена.
Использовать глобальные переменные это антипаттерн. Я про переменные key и a. Их можно было бы передать как параметры.
Для определения кода буквы можно использовать функцию ord и тогда не нужно будет пользоваться списком символов для вычисления индекса символа.