2024-04-03 10:46:17 +02:00
|
|
|
import javax.swing.*;
|
2024-04-03 11:51:47 +02:00
|
|
|
import java.awt.BorderLayout;
|
2024-04-03 12:13:16 +02:00
|
|
|
import java.awt.event.ActionListener;
|
|
|
|
import java.awt.event.ActionEvent;
|
|
|
|
|
2024-04-03 11:51:47 +02:00
|
|
|
|
2024-04-02 16:20:29 +02:00
|
|
|
|
|
|
|
public class Main {
|
|
|
|
public static void main(String[] args) {
|
2024-04-03 11:25:04 +02:00
|
|
|
System.out.println("Le programme Main a démarré.");
|
|
|
|
|
|
|
|
int[][] grid = SudokuGenerator.readGridFromFile(); // Demander à l'utilisateur de sélectionner un fichier de grille
|
|
|
|
System.out.println("Grille Sudoku générée à partir du fichier avec succès.");
|
2024-04-03 10:46:17 +02:00
|
|
|
|
|
|
|
JFrame frame = new JFrame("Sudoku");
|
|
|
|
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
2024-04-03 11:25:04 +02:00
|
|
|
Enter enterPanel = new Enter(grid); // Utilisation de la classe Enter pour permettre la saisie des valeurs
|
2024-04-03 11:51:47 +02:00
|
|
|
|
|
|
|
// Ajout de deux boutons
|
|
|
|
JButton solveButton = new JButton("Solve");
|
|
|
|
JButton resetButton = new JButton("Reset");
|
|
|
|
JPanel buttonPanel = new JPanel();
|
|
|
|
buttonPanel.add(solveButton);
|
|
|
|
buttonPanel.add(resetButton);
|
|
|
|
|
|
|
|
// Ajout des composants au frame
|
|
|
|
frame.add(enterPanel, BorderLayout.CENTER);
|
|
|
|
frame.add(buttonPanel, BorderLayout.SOUTH);
|
|
|
|
|
2024-04-03 12:08:54 +02:00
|
|
|
// Ajout de l'écouteur d'événements au bouton "Reset"
|
|
|
|
resetButton.addActionListener(new Reset(grid, enterPanel));
|
|
|
|
|
2024-04-03 12:13:16 +02:00
|
|
|
// Ajout de l'écouteur d'événements au bouton "Solve"
|
|
|
|
solveButton.addActionListener(new ActionListener() {
|
|
|
|
@Override
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
if (Resolve.solveSudoku(grid)) {
|
|
|
|
enterPanel.repaint(); // Redessiner la grille après la résolution
|
|
|
|
JOptionPane.showMessageDialog(frame, "Grille résolue avec succès !");
|
|
|
|
} else {
|
|
|
|
JOptionPane.showMessageDialog(frame, "Impossible de résoudre la grille.");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2024-04-03 10:46:17 +02:00
|
|
|
frame.pack();
|
|
|
|
frame.setLocationRelativeTo(null); // Centrer la fenêtre sur l'écran
|
|
|
|
frame.setVisible(true);
|
2024-04-03 11:25:04 +02:00
|
|
|
|
|
|
|
System.out.println("La fenêtre Sudoku a été affichée.");
|
2024-04-02 16:20:29 +02:00
|
|
|
}
|
|
|
|
}
|