Ajout de la question pour résoudre en automatique ou manuel

This commit is contained in:
Vincent TEISSIER 2024-05-05 17:51:03 +02:00
parent 7416cba48f
commit 6bb86f61fe
15 changed files with 17 additions and 46 deletions

BIN
Cell.class Normal file

Binary file not shown.

BIN
GenerateGrid.class Normal file

Binary file not shown.

BIN
Grid.class Normal file

Binary file not shown.

BIN
Sudoku.class Normal file

Binary file not shown.

BIN
SudokuButtonListener.class Normal file

Binary file not shown.

BIN
SudokuCreator$1.class Normal file

Binary file not shown.

BIN
SudokuCreator$2.class Normal file

Binary file not shown.

BIN
SudokuCreator$3.class Normal file

Binary file not shown.

BIN
SudokuCreator.class Normal file

Binary file not shown.

BIN
SudokuGame$1.class Normal file

Binary file not shown.

BIN
SudokuGame$2.class Normal file

Binary file not shown.

BIN
SudokuGame.class Normal file

Binary file not shown.

@ -5,43 +5,38 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
/**
* La classe SudokuGame étend la classe SudokuUI et représente une application de jeu de Sudoku avec des fonctionnalités supplémentaires telles que le chargement de grilles et la résolution automatique.
*/
public class SudokuGame extends SudokuUI {
/**
* Constructeur de la classe SudokuGame.
*
* @param sudoku La grille de Sudoku à utiliser pour le jeu.
*/
public SudokuGame(Sudoku sudoku) {
super(sudoku);
createAdditionalButtons();
// Demander à l'utilisateur s'il veut jouer manuellement ou résoudre automatiquement
int option = JOptionPane.showOptionDialog(null, "Voulez-vous jouer manuellement ou résoudre automatiquement la grille de Sudoku ?", "Choix du mode", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[]{"Manuel", "Automatique"}, "Manuel");
// Activer ou désactiver les fonctionnalités en fonction du choix de l'utilisateur
if (option == JOptionPane.YES_OPTION) { // Manuel
createManualButtons();
} else if (option == JOptionPane.NO_OPTION) { // Automatique
createAutoButtons();
}
}
/**
* Méthode pour obtenir le texte du titre de l'interface utilisateur.
*
* @return Le texte du titre.
*/
@Override
protected String getTitleText() {
return "Sudoku Game";
return "Sudoku Game"; // Texte du titre pour le jeu Sudoku
}
/**
* Méthode pour créer les boutons de chargement et de résolution et redimensionner la fenêtre.
*/
protected void createAdditionalButtons() {
protected void createManualButtons() {
createLoadButton();
pack(); // Redimensionner la fenêtre pour s'adapter aux nouveaux boutons
}
private void createAutoButtons() {
createLoadButton();
createSolveButton();
pack(); // Redimensionner la fenêtre pour s'adapter aux nouveaux boutons
}
/**
* Méthode pour créer le bouton de résolution.
*/
private void createSolveButton() {
JButton solveButton = new JButton("Résoudre (Automatique)");
solveButton.addActionListener(new ActionListener() {
@ -75,9 +70,6 @@ public class SudokuGame extends SudokuUI {
add(buttonPanel, BorderLayout.SOUTH);
}
/**
* Méthode pour créer le bouton de chargement.
*/
private void createLoadButton() {
JButton loadButton = new JButton("Charger");
loadButton.addActionListener(new ActionListener() {
@ -100,9 +92,6 @@ public class SudokuGame extends SudokuUI {
add(buttonPanel, BorderLayout.NORTH);
}
/**
* Méthode pour mettre à jour les valeurs des boutons de la grille après un chargement ou une résolution.
*/
private void updateGrid() {
Grid grid = sudoku.getGrid();
for (int row = 0; row < 9; row++) {
@ -114,10 +103,6 @@ public class SudokuGame extends SudokuUI {
}
}
/**
* Méthode pour vérifier si la grille est complètement remplie et si la solution est correcte.
* Affiche une alerte si la grille est résolue correctement.
*/
private void checkGameCompletion() {
Grid grid = sudoku.getGrid();
boolean isFull = true;
@ -139,25 +124,11 @@ public class SudokuGame extends SudokuUI {
}
}
/**
* Vérifie si le placement d'un nombre dans une cellule est sûr.
*
* @param grid La grille de Sudoku.
* @param row L'indice de ligne de la cellule.
* @param col L'indice de colonne de la cellule.
* @param num Le nombre à vérifier.
* @return True si le placement est sûr, False sinon.
*/
private boolean isValidMove(Grid grid, int row, int col, int num) {
// Votre logique de validation ici
return false;
}
/**
* Méthode principale pour démarrer le jeu de Sudoku.
*
* @param args Les arguments de la ligne de commande (non utilisés).
*/
public static void main(String[] args) {
Sudoku sudoku = new Sudoku();
new SudokuGame(sudoku);

BIN
SudokuSolver.class Normal file

Binary file not shown.

BIN
SudokuUI.class Normal file

Binary file not shown.