IncertainIncomplet
This commit is contained in:
parent
ba5511c7ba
commit
1e375995b3
Binary file not shown.
@ -17,17 +17,58 @@ public class CaseMouseListener extends MouseAdapter {
|
|||||||
panel.setColonneSelectionnee(x);
|
panel.setColonneSelectionnee(x);
|
||||||
System.out.println("Case sélectionnée : (" + panel.getLigneSelectionnee() + ", " + panel.getColonneSelectionnee() + ")");
|
System.out.println("Case sélectionnée : (" + panel.getLigneSelectionnee() + ", " + panel.getColonneSelectionnee() + ")");
|
||||||
if (panel.getGrilleInitiale()[panel.getLigneSelectionnee()][panel.getColonneSelectionnee()] == 0) {
|
if (panel.getGrilleInitiale()[panel.getLigneSelectionnee()][panel.getColonneSelectionnee()] == 0) {
|
||||||
String valeurStr = JOptionPane.showInputDialog(null, "Entrez la valeur pour la cellule sélectionnée :");
|
String[] options = {"Incertain", "Valider"};
|
||||||
try {
|
JTextField textField = new JTextField();
|
||||||
int valeur = Integer.parseInt(valeurStr);
|
Object[] message = {
|
||||||
if (panel.validerChiffre(panel.getLigneSelectionnee(), panel.getColonneSelectionnee(), valeur)) {
|
"Entrez la valeur pour la cellule sélectionnée :",
|
||||||
panel.getGrille()[panel.getLigneSelectionnee()][panel.getColonneSelectionnee()] = valeur;
|
textField
|
||||||
panel.repaint();
|
};
|
||||||
} else {
|
int option = JOptionPane.showOptionDialog(null, message, "Entrez un nombre", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, options[0]);
|
||||||
JOptionPane.showMessageDialog(null, "Ce chiffre ne respecte pas les contraintes du Sudoku. Veuillez choisir un autre chiffre.");
|
if (option == 1) {
|
||||||
|
String valeurStr = textField.getText();
|
||||||
|
try {
|
||||||
|
int valeur = Integer.parseInt(valeurStr);
|
||||||
|
if (panel.validerChiffre(panel.getLigneSelectionnee(), panel.getColonneSelectionnee(), valeur)) {
|
||||||
|
panel.getGrille()[panel.getLigneSelectionnee()][panel.getColonneSelectionnee()] = valeur;
|
||||||
|
panel.repaint();
|
||||||
|
} else {
|
||||||
|
JOptionPane.showMessageDialog(null, "Ce chiffre ne respecte pas les contraintes du Sudoku. Veuillez choisir un autre chiffre.");
|
||||||
|
}
|
||||||
|
} catch (NumberFormatException ex) {
|
||||||
|
JOptionPane.showMessageDialog(null, "Saisie invalide. Veuillez entrer un nombre.");
|
||||||
|
}
|
||||||
|
} else if (option == 0) {
|
||||||
|
// Le joueur a choisi "Incertain"
|
||||||
|
JTextField[] incertainFields = new JTextField[4];
|
||||||
|
for (int i = 0; i < 4; i++) {
|
||||||
|
incertainFields[i] = new JTextField();
|
||||||
|
}
|
||||||
|
Object[] incertainMessage = {
|
||||||
|
"Entrez les valeurs incertaines pour la cellule sélectionnée :",
|
||||||
|
"Valeur 1 (obligatoire):", incertainFields[0],
|
||||||
|
"Valeur 2 (obligatoire):", incertainFields[1],
|
||||||
|
"Valeur 3 (optionnelle):", incertainFields[2],
|
||||||
|
"Valeur 4 (optionnelle):", incertainFields[3]
|
||||||
|
};
|
||||||
|
int incertainOption = JOptionPane.showOptionDialog(null, incertainMessage, "Entrez les valeurs incertaines", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null, null, null);
|
||||||
|
if (incertainOption == JOptionPane.OK_OPTION) {
|
||||||
|
// Vérifier que les valeurs obligatoires sont remplies
|
||||||
|
if (!incertainFields[0].getText().isEmpty() && !incertainFields[1].getText().isEmpty()) {
|
||||||
|
// Récupérer les valeurs incertaines saisies par le joueur
|
||||||
|
int valeursIncertaines = 0;
|
||||||
|
for (int i = 0; i < 4; i++) {
|
||||||
|
if (!incertainFields[i].getText().isEmpty()) {
|
||||||
|
int valeur = Integer.parseInt(incertainFields[i].getText());
|
||||||
|
valeursIncertaines |= (valeur << (i * 4));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Mettre à jour la grille avec les valeurs incertaines
|
||||||
|
panel.getGrille()[panel.getLigneSelectionnee()][panel.getColonneSelectionnee()] = valeursIncertaines;
|
||||||
|
panel.repaint();
|
||||||
|
} else {
|
||||||
|
JOptionPane.showMessageDialog(null, "Les deux premières valeurs incertaines sont obligatoires.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (NumberFormatException ex) {
|
|
||||||
JOptionPane.showMessageDialog(null, "Saisie invalide. Veuillez entrer un nombre.");
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
JOptionPane.showMessageDialog(null, "Vous ne pouvez pas modifier la valeur par défaut.");
|
JOptionPane.showMessageDialog(null, "Vous ne pouvez pas modifier la valeur par défaut.");
|
||||||
|
Loading…
Reference in New Issue
Block a user