Taquin

Le taquin est un jeu solitaire en forme de damier. Il est composé de 15 petits carreaux numérotés de 1 à 15 qui glissent dans un cadre prévu pour 16. Il consiste à remettre dans l'ordre les 15 carreaux à partir d'une configuration initiale quelconque.

image mélangée

Le but du projet est d'écrire une version de ce jeu qui utilisera non pas des nombres, mais une image de base découpée en morceaux.

Vous produirez un programme écrit en C89, sans emprunt extérieur (sauf la bibliothèque graphique de l'IUT), et accompagné d'un rapport. Le travail sera fait seul ou en binôme, et devra être terminé avant le dimanche 7 décembre 2025 à 23h59.

La partie logicielle sera développée dès le départ dans un dépôt dédié du serveur Gitea du département. Le rapport prendra la forme d'un fichier au format PDF joint aux sources.

Règles du jeu

Le joueur commence par choisir une image parmi une sélection (au moins trois images, chacune de dimensions différentes, seront proposées). Il choisit ensuite indépendamment le nombre de lignes et de colonnes (entre 3 et 8). L'image est découpée en autant de tuiles, et la tuile en haut à gauche est retirée. Enfin, les tuiles sont mélangées aléatoirement et placées en grille (ce qui laisse une case vide).

image d'origine  →  image découpée

La seule action possible pour le joueur consiste à faire glisser une tuile vers la case vide depuis l'une des cases adjacentes. Son objectif est de retrouver l'ordre d'origine des tuiles de façon à voir l'image correctement.

Toutes les interactions doivent être réalisables à la fois à la souris et au clavier. Incluez au moins deux vues, l'une dédiée à la configuration initiale, l'autre dédiée au déroulement de la partie elle-même. Le nombre de coups déjà joués doit être constamment indiqué. Lorsque la partie est terminée, cela doit provoquer un changement visible et la prochaine action du joueur lui permet soit de quitter le programme soit de commencer une nouvelle partie (en revenant à la première vue).

Vous devrez choisir une façon de mélanger qui garantit que le joueur peut revenir à la disposition initiale.

Sources

Les sources de votre projet (et pas les fichiers générés .o ou .out) devront être disponibles dès le début du développement sur Grond. Votre dépôt sera privé, nommé obligatoirement SAE11_2025 et incluera Luc Hernandez (login : hernand) dans la liste des collaborateurs. Votre utilisation de ce service sera contrôlée et comptée dans la note.

Votre code devra être raisonnablement divisé en fonctions et en fichiers. Commentez chaque fonction pour en décrire l'usage. Suivez les consignes habituelles scrupuleusement.

Un fichier Makefile devra permettre la compilation de votre projet (par la commande make) ainsi que son exécution (par la commande make run). Transcrivez bien toutes les dépendances entre vos fichiers dans les règles.

Rapport

Le rapport d'avancement prendra la forme d'un fichier PDF disponible avec les sources sur Grond. Vous y inclurez en particulier :

  • une introduction contenant une brève description du sujet (avec vos propres mots).
  • la description des fonctionnalités de votre programme, aidée de captures d'écran.
  • une présentation de la structure du programme, y compris une justification du découpage en différents fichiers source, avec diagrammes à l'appui.
  • une explication des données (valeurs et types) représentant l'état d'une partie en cours.
  • une analyse de votre algorithme de mélange, avec une démonstration qui prouve que la disposition obtenue peut toujours permettre au joueur de réussir.
  • une conclusion personnelle pour chaque auteur (évitez les platitudes).

Soignez la présentation ! L'orthographe, la grammaire, les pages de garde, la table des matières, les en-tête et pieds de page ne sont pas en option...

Notez bien que le rapport ne doit pas contenir d'extrait du code source du projet, étant donné que le correcteur peut aller le consulter directement s'il en éprouve le besoin. N'hésitez pas en revanche à illustrer vos propos par des schémas. Ceux-ci peuvent être construits directement dans le logiciel de traitement de texte s'il le permet, ou dans un logiciel dédié, tel que Inkscape ou Draw (tous deux gratuits).

retour à la page d'accueil

retour au sommet