lundi 19 septembre 2011

Reconstruction de documents détruits

Pour nous entraîner à la manipulation de tableau en dimension 2 (et donc de manipuler la notion de pointeur de pointeur), nous allons attaquer le problème de la reconstitution de documents détruits...

La problématique générale de reconstitution de document détruit est détaillée ici. Nous allons essayer de résoudre ce problème dans le contexte d'images en "ascii-art".

Le strict minimum que j'attendrai de vous c'est de créer un programme capable de mettre un fichier d'ascii-art en mémoire (dans un tableau à deux dimensions), d'en mélanger les lignes, puis de les afficher. Pour faire cela, je vous aiderai sur les points suivants :
  • Comment utiliser la redirection des entrées et sorties standard pour interagir avec des fichiers.
  • l'utilisation de la fonction fgets pour lire un fichier ligne à ligne.
  • l'utilisation des fonctions random et srand, pour générer de l'aléatoire.

Voici une image illustrant le traitement à faire :

Pour les plus avancés d'entre vous, vous pourront nous attaquer au problème de la reconstruction... C'est à dire essayer de retrouver approximativement l'ordre d'origine. Il s'agit d'un problème complexe, mais abordable. L'idée de base est de se dire que le voisin le plus probable d'une ligne est la ligne qui lui ressemble le plus... Rien qu'avec cette idée je vais vous montrer qu'on peut retrouver une partie de l'ordre d'origine.Pour commencer vous pouvez utiliser le fichier "snoopy.txt" attaché à ce billet. Même des algorithmes "naïfs" devraient (normalement) assez bien fonctionner sur cet exemple. Je donnerai plus tard des exemples plus complexes pour lequels il y aura des points bonus à gagner!

Je vous rappelle qu'avant de s'attaquer à ces problématique vous devez d'abord finir votre programme de "jeu de pendu". Par "finir", j'entend par là que la logique du jeu fonctionne , et que le logiciel valgrind ne détecte aucune erreur ni fuite mémoire.

Annexe(s) :

snoopy.txt :: 3.24 KB