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