SAE21_2023/Main.java

64 lines
2.5 KiB
Java
Raw Normal View History

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
}
}