Morpion solitaire

Le morpion solitaire est un jeu à un seul joueur qui peut être pratiqué sur une feuille à carreaux. Avant le début de la partie, on marque sur la feuille 36 intersections en forme de croix grecque.

position de départ de la feuille

À chaque coup, le joueur doit tracer une ligne horizontale, verticale ou diagonale reliant quatre intersections marquées et une intersection non marquée. La nouvelle intersection devient alors marquée. Une ligne ne peut pas avoir plus d'une intersection en commun avec une ligne précédemment tracée.

feuille après deux coups

La partie s'arrête lorsqu'aucun coup n'est plus possible. Le score du joueur est égal au nombre de coups (le record est 178 !).

Objectif

Vous produirez une application Android écrite en Java utilisant uniquement des classes originales et les classes vues en cours. Un rapport d'activité y sera joint. Le travail sera fait en binôme ou trinôme, et devra être terminé avant le dimanche 7 avril 2024 à 23h59.

Lorsque le jeu démarre, il affiche un menu qui propose de démarrer une partie et d'accéder aux options (de la façon standard).

La partie elle-même sera une autre activité. La feuille étant potentiellement infinie, le joueur pourra la faire défiler dans les deux directions. Pour éviter qu'il se perde, le joueur devra avoir la possibilité de recentrer la vue sur la croix de départ.

Il pourra également jouer un coup en traçant une ligne. Cette dernière action doit se faire en un seul geste. Les coups illégaux seront ignorés. Le score courant sera visible durant toute la partie.

Le jeu détecte automatiquement si la partie est finie et l'indique au joueur. Après cela, le joueur peut encore faire défiler la feuille pour contempler son œuvre, et le score doit rester visible.

En cas de retour en arrière, l'activité de jeu mène au menu. Dans le cas du menu, un retour arrière termine l'application. Une partie en cours ne doit pas être perdue si l'application est mise en pause.

Une activité de configuration accessible seulement depuis le menu principal devra permettre l'activation de deux règles optionnelles. La première règle consiste à démarrer avec une croix plus petite (comprenant seulement 24 intersections). La deuxième règle interdit de tracer une ligne qui prolonge une ligne existante.

Sources

Les sources de votre projet (mais pas le répertoire build) devront être disponibles à tout moment sur le serveur Gitea du département. Votre dépôt sera privé, nommé obligatoirement SAE41_2023 et incluera Luc Hernandez (login : hernand) dans la liste des collaborateurs. Le nombre de soumissions, leur date et l'équilibre entre leurs auteurs influeront sur la note finale.

Pour chaque classe, vous prévoierez un fichier source. Suivez les consignes habituelles scrupuleusement.

Rapport

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

  • le nom des membres du groupe,
  • 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, avec un diagramme de classes pour chaque activité,
  • une explication de l'algorithme qui décide si un coup est légal,
  • une conclusion personnelle pour chaque auteur.

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). Les diagrammes de classe seront réalisés à l'aide de StarUML.

retour à la page d'accueil

retour au sommet