Le but de ce projet est de développer un jeu de Sudoku en mode texte, en utilisant Maven, GIT et JUnit.
Toute la gestion du code source se fait à travers GIT, en utilisant le dépot associé à la classroom GitHub. Les commits doivent se faire régulièrement et contenir un message de commit pertinent.
Le rendu final devra avoir au moins 3 branches. Attention à bien respecter le nom et la casse.
- master qui contient la version finale du logiciel
- bug qui contient une version où une grosse partie des tests unitaires échoue
- dev qui contient des fonctionnalités expérimentales (voir après)
Le logiciel sera composé de 3 modules au minimum
- IO : entrées-sorties sur le disque
- GUI : entrées-sorties sur l'écran
- Main : application Le projet devra être exécuté depuis Maven et il pourra être packagé sous forme de jar exécutable de nom sudokuV1.jar. Ce jar pourra prendre comme paramêtre un chemin vers un fichier contenant la grille. Si aucun paramêtre, il chargera une grille depuis resources.
Toutes les classes méthodes devront être testées avec JUnit.
La grille de Sudoku est de taille 9x9 et chaque case peut contenir un chiffre entre 1 et 9. Elle est subdivisée et 9 zones de taille 3x3. Le but est d'avoir dans chaque zone, sur chaque ligne et chaque colonne chaque chiffre une unique fois.
- L'affichage de la grille se fait en mode texte en utilisant une bibliothèque comme Java ASCII Render. Après chaque coup la grille peut être complètement affichée de nouveau.
- Le joueur indique par 3 chiffres sans espaces le coup à jouer. Par exemple 123 indique la ligne 1, la colonne 2, et mettre la valeur 3. Les lignes sont numérotées de haut en bas.
- Chaque fois qu'un nombre est proposé, il est vérifié et le logiciel affiche un message si il est incorrect.
- Une grille peut être spécifiée sous forme de fichier texte. Une ligne de texte par ligne de la grille. Une case sans valeur sera représentée par '_'
- Une grille peut être sauvegardée sous forme de fichier texte en tapant save nom plutôt qu'un nombre et chargée en tapant load nom.
Dans cette branche se trouvera une version du jeu permettant de revenir en arrière. Il devra être possible d'annuler les coups avec la commande 'b' (back). Chaque commande annulera le dernier coup joué. Tous les coups joués depuis le début de la partie devront pouvoir être annulés.
Ouvrir un terminal et executer:
git clone https://github.com/Master1-MIAGE-UCA/projet-ThomasGauci
cd Sudoku
mvn clean install
cd Main
mvn assembly:single
cd ..
java -jar Main/target/SudokuV1.jar
(Lancement du jeu avec une grille ressource )java -jar Main/target/SudokuV1.jar /Users/thomasgauci/Desktop/loadsapropregrille.txt
(Lancement du jeu avec une grille personnalisée )
JAVA
Maven Project
JUnit
Professeur encadrant : M. Fabrice HUET
Copyright (c) 2019-present, GAUCI Thomas