import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Main { public static void main(String[] args) { System.out.println("Le programme Main a démarré."); int[][] grille = GenerateurSudoku.genererGrille(); // Obtenir la grille par défaut System.out.println("Grille Sudoku générée avec succès."); JFrame frame = new JFrame("Sudoku"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 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); // Ajout des composants au frame frame.add(saisieGrille, BorderLayout.CENTER); frame.add(boutonsPanel, BorderLayout.SOUTH); frame.pack(); frame.setLocationRelativeTo(null); // Centrer la fenêtre sur l'écran frame.setVisible(true); System.out.println("La fenêtre Sudoku a été affichée."); } }