Institut Supérieur de l’Informatique Licence 3 RI POO/JAVA
Titre du Projet : Développement d'un Jeu de Sudoku Interactif en Java
Définition : Le but du jeu est de remplir la grille avec une série de chiffres
(ou de lettres ou de symboles) tous différents, qui ne se trouvent jamais
plus d’une fois sur une même ligne, dans une même colonne ou dans
une même région (également appelée « bloc », « groupe », « secteur » ou
« sous-grille »). La plupart du temps, les symboles sont des chiffres allant
de 1 à 9, les régions étant alors des carrés de 3 × 3. Quelques symboles
sont déjà disposés dans la grille, ce qui autorise une résolution progressive
du problème complet.
1. Objectif du projet
L'objectif est de créer une application Sudoku en Java qui permet :
Institut Supérieur de l’Informatique Licence 3 RI POO/JAVA
• De générer une grille de Sudoku valide.
• De résoudre une grille de Sudoku.
• De proposer une interface utilisateur (console ou graphique) pour
jouer.
2. Structure du projet (Classes principales)
2.1. Classe Cellule
Représente une cellule de la grille de Sudoku.
• Attributs :
o valeur : la valeur de la cellule (1 à 9 ou 0 si vide).
o estModifiable : un booléen pour indiquer si la cellule peut être
modifiée (utile pour l'interface utilisateur).
• Méthodes :
o Constructeur pour initialiser la cellule.
o Getters et setters pour valeur et estModifiable.
2.2. Classe Grille
Représente la grille de Sudoku (9x9).
• Attributs :
o cellules : un tableau 2D de Cellule (9x9).
• Méthodes :
o Constructeur pour initialiser une grille vide.
o estValide() : vérifie si la grille est valide.
Institut Supérieur de l’Informatique Licence 3 RI POO/JAVA
o estComplete() : vérifie si la grille est complète.
o getCellule(int ligne, int colonne) : retourne une cellule spécifique.
o setCellule(int ligne, int colonne, int valeur) : modifie la valeur
d'une cellule.
2.3. Classe GenerateurGrille
Génère une grille de Sudoku valide.
• Méthodes :
o genererGrille() : génère une grille complète aléatoirement.
o retirerCases(int nombre) : retire un certain nombre de cases pour
créer un puzzle.
2.4. Classe Solveur
Résout une grille de Sudoku.
• Méthodes :
o resoudre(Grille grille) : implémente un algorithme de
backtracking pour résoudre la grille.
2.5. Classe JeuSudoku
Gère le déroulement du jeu.
• Attributs :
o grille : la grille actuelle du jeu.
o solveur : une instance de Solveur.
Institut Supérieur de l’Informatique Licence 3 RI POO/JAVA
• Méthodes :
o demarrerJeu() : démarre le jeu.
o verifierGrille() : vérifie si la grille est correcte.
o afficherGrille() : affiche la grille dans la console.
2.6. Classe Main
Point d'entrée du programme.
• Méthodes :
o main(String[] args) : initialise et lance le jeu.
3. Fonctionnalités à implémenter
3.1. Génération de la grille
• Utilisez un algorithme pour générer une grille complète valide.
• Retirez des cases pour créer un puzzle jouable.
3.2. Résolution de la grille
• Implémentez un algorithme de backtracking pour résoudre la grille.
3.3. Interface utilisateur
• Console : affichez la grille et permettez à l'utilisateur de saisir des
valeurs.
• Graphique (optionnel) : utilisez Java Swing ou JavaFX pour une
interface graphique.
Institut Supérieur de l’Informatique Licence 3 RI POO/JAVA
4. Améliorations possibles
• Ajoutez une interface graphique avec Java Swing.
• Implémentez des niveaux de difficulté (facile, moyen, difficile).
• Ajoutez un chronomètre pour mesurer le temps de résolution.
• Permettez à l'utilisateur de sauvegarder et de charger des grilles.
Ce projet est un excellent moyen de pratiquer la POO en Java tout en
créant un jeu classique et amusant.
Bonne chance !