2024-04-03 10:46:17 +02:00
|
|
|
import javax.swing.*;
|
2024-04-06 20:23:50 +02:00
|
|
|
import java.awt.*;
|
|
|
|
import java.awt.event.*;
|
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é.");
|
|
|
|
|
2024-04-06 20:23:50 +02:00
|
|
|
int[][] grille = GenerateurSudoku.genererGrille(); // Obtenir la grille par défaut
|
|
|
|
System.out.println("Grille Sudoku générée avec succès.");
|
2024-04-03 10:46:17 +02:00
|
|
|
|
|
|
|
JFrame frame = new JFrame("Sudoku");
|
|
|
|
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
2024-04-06 20:23:50 +02:00
|
|
|
SaisieGrille saisieGrille = new SaisieGrille(grille); // Utilisation de la classe SaisieGrille pour permettre la saisie des valeurs
|
|
|
|
|
|
|
|
// Panneau pour contenir les boutons
|
|
|
|
JPanel boutonsPanel = new JPanel();
|
|
|
|
boutonsPanel.setLayout(new FlowLayout());
|
|
|
|
|
|
|
|
// Bouton "Résoudre"
|
|
|
|
JButton resoudreButton = new JButton("Résoudre");
|
|
|
|
resoudreButton.addActionListener(new ActionListener() {
|
|
|
|
@Override
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
long startTime = System.nanoTime(); // Temps avant la résolution
|
|
|
|
|
|
|
|
if (Resolveur.resoudreSudoku(grille)) {
|
|
|
|
long endTime = System.nanoTime(); // Temps après la résolution
|
|
|
|
long duration = (endTime - startTime) / 1000000; // Durée en millisecondes
|
|
|
|
|
|
|
|
saisieGrille.repaint(); // Redessiner la grille après la résolution
|
|
|
|
JOptionPane.showMessageDialog(frame, "Grille résolue avec succès en " + duration + " millisecondes !");
|
|
|
|
} else {
|
|
|
|
JOptionPane.showMessageDialog(frame, "Impossible de résoudre la grille.");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
// Bouton "Réinitialiser"
|
|
|
|
JButton reinitialiserButton = new JButton("Réinitialiser");
|
|
|
|
reinitialiserButton.addActionListener(new ActionListener() {
|
|
|
|
@Override
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
Reinitialiser reinitialiser = new Reinitialiser(grille, saisieGrille);
|
|
|
|
reinitialiser.actionPerformed(e);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
// Ajout des boutons au panneau
|
|
|
|
boutonsPanel.add(resoudreButton);
|
|
|
|
boutonsPanel.add(reinitialiserButton);
|
2024-04-03 11:51:47 +02:00
|
|
|
|
|
|
|
// Ajout des composants au frame
|
2024-04-06 20:23:50 +02:00
|
|
|
frame.add(saisieGrille, BorderLayout.CENTER);
|
|
|
|
frame.add(boutonsPanel, BorderLayout.SOUTH);
|
2024-04-03 12:13:16 +02:00
|
|
|
|
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
|
|
|
}
|
|
|
|
}
|