Projet individuel d`algorithmique-programmation (groupe 1.2): Jeu

Transcription

Projet individuel d`algorithmique-programmation (groupe 1.2): Jeu
Projet individuel d’algorithmique-programmation (groupe 1.2):
Jeu de lettres
octobre 2006
1
Travail à rendre
Le projet est à réaliser en OCaml individuellement. Il sera accompagné d’un dossier contenant
impérativement la description des choix faits, la description des types et des fonctions. Pour chaque
fonction, on donnera impérativement l’interface complète.
Le dossier fournira également des cas de tests accompagnés des résultats retournés.
Le projet est à rendre au secrétariat le 8 novembre 2006 à 10 heures. Le numéro du groupe,
ainsi que le nom du chargé de TD, devront figurer en gros, et en rouge sur la page de garde. Le code
des projets sera déposé sur un site sécurisé (informations ultérieurement).
Des soutenances seront organisées une dizaine de jours après la remise.
2
Objectif du projet
Le but de ce projet est de fabriquer des messages secrets. Il est demandé d’écrire un programme
OCaml transformant un message original représenté par une suite de caractères, en un message secret,
et ce en suivant différentes stratégies. Le programme effectuera de plus la transformation inverse, si
cela est possible.
Les lettres du message original seront exclusivement des minuscules, et celles du message secret
exclusivement des majuscules ou des chiffres. Chaque lettre est transformée en une lettre ou un
chiffre selon une clé. Les autres caractères sont laissés tels quels. Le programme sera testé sur des
messages contenant une soixantaine de caractères. Il est de plus demandé d’utiliser les fonctions de
la bibliothèque Char.
3
Première méthode
La clé est quelconque et fournie par l’utilisateur du programme. Le message secret ne sera pas
fabriqué si la clé ne permet pas de transformer toutes les lettres du message.
Exemple
La clé transformant a en H, e en Z et n en U transforme le message ane, ane en HUZ, HUZ.
4
Deuxième méthode
Chaque lettre est transformée en un chiffre. L’utilisateur fournit n clés. Soit p le nombre de lettres
du message original. La première lettre du message original est transformée selon la première clé. La
deuxième lettre du message original est transformée selon la deuxième clé, et ainsi de suite jusqu’à la
ne lettre. Lorsque p > n, on réutilise les n clés pour transformer la n + 1e lettre du message original
selon la première clé, et ainsi de suite jusqu’à la dernière lettre du message original.
Si l’utilisateur ne fournit pas les n clés, les n clés utilisées associeront à chaque lettre sa position
dans l’alphabet augmentée de i, pour i ∈ [1; n].
1

Documents pareils