Pretende-se a implementação em Prolog de um codificador de mensagens (e de um
descodificador de mensagens encriptadas), pela substituição simples de uma letra (ou
dígito), de a-z (ou 0-9), por outra, também de a-z (ou 0-9). Uma das formas mais simples
de substituição é deslocar o alfabeto de uma quantidade específica (chamemos-lhe um delta).
Por exemplo, se cada letra e cada dígito fôr deslocada de 3, então
a b c d e f g h i j k l m n o p q r s t u v w x y z 0123456789
ficaria
d e f g h i j k l m n o p q r s t u v w x y z a b c 3456789012
e a mensagem 'encontra-me ao anoitecer' ficaria 'hqfrqwud-ph dr dqrlwhfhu'.
Usando o algoritmo acima descrito e o predicado pré-definido name/2 (recorde-se
que este predicado transforma uma frase (1 argumento) numa lista (2 argumento) com os
códigos ASCII dos seus caracteres), implemente o predicado code( F,FCode,Delta )
que recebe a frase F e a devolve codificada em FCode usando um
deslocamento Delta para rodar as letras e os dígitos.
Exemplo:
?- code('encontra-me ao anoitecer',C,3). C = 'hqfrqwud-ph dr dqrlwhfhu'