Blocus

Dans ce projet vous aurez à réaliser un jeu où deux joueurs se déplacent sur une grille en tentant de se bloquer mutuellement.

exemple de partie

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 obligatoirement en binôme (ou seul si vous obtenez l'autorisation de Luc Hernandez dès la première semaine), et se terminera impérativement avant le dimanche 24 novembre 2024 à 23:59.

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 terrain de jeu prend la forme d'une grille carrée dont la taille sera choisie à chaque partie entre 3 et 9. L'un après l'autre les deux joueurs choisissent une case où placer leur pion (les deux pions ne peuvent pas partager la même case).

Une fois le terrain mis en place, les joueurs alternent les tours. Durant le tour d'un joueur, il doit déplacer son pion vers une case adjacente (y compris en diagonale), puis choisir une case libre qui sera condamnée. Le premier joueur qui ne peut pas déplacer son pion (car toutes les cases adjacentes sont condamnées ou occupées) a perdu.

L'interface du jeu sera contrôlée entièrement à la souris et consistera en trois écrans. Le premier écran proposera de choisir la taille du terrain de jeu, et de démarrer une partie à un ou deux joueurs. Le deuxième écran permet de jouer la partie. Le troisième écran affiche le gagnant et permet de choisir entre terminer le programme et lancer une nouvelle partie.

Dans une partie à un seul joueur, le programme simule le deuxième joueur. Il n'a pas besoin de jouer brillamment, mais ses choix doivent respecter les règles du jeu.

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_2024 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,
  • la description des fonctionnalités de votre programme, illustrées par des captures d'écran,
  • une présentation de la structure du programme, avec diagramme à l'appui,
  • une explication des données (valeurs et types) représentant l'état d'une partie en cours.
  • 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