03/01/2025 : Intégration d'un mécanisme permettant de contrôler que le symbole choisi ne figure pas déjà dans la liste de symboles possibles. Permet d'éviter les doublons
This commit is contained in:
@@ -46,7 +46,12 @@ public class App {
|
||||
sudoku.getGrille().printSymbolesPossibles();
|
||||
|
||||
//Création d'un second sudoku
|
||||
System.out.println("Création d'un second SUDOKU");
|
||||
|
||||
Sudoku sudoku2 = new Sudoku(9);
|
||||
sudoku2.getGrille().askSetSymbolesPossibles();
|
||||
|
||||
System.out.println("Symboles possibles :");
|
||||
sudoku2.getGrille().printSymbolesPossibles();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package sudoku;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Scanner;
|
||||
|
||||
import sudoku.core.Console;
|
||||
@@ -128,6 +129,14 @@ public class Grille {
|
||||
switch (choix) {
|
||||
case 1: // Nombres
|
||||
try {
|
||||
Symbole intTemp = Symbole.of(Integer.parseInt(input));
|
||||
//Evaluation de la du caractère qui vient d'être saisit
|
||||
for (Symbole symbole : symbolesPossibles) {
|
||||
if (Objects.equals(intTemp.toString(), symbole.toString())){
|
||||
Console.errorln("Ce symbole existe déja, veuillez entrer un autre symbole");
|
||||
throw new NumberFormatException("Ce symbole existe déja");
|
||||
}
|
||||
}
|
||||
symbolesPossibles.add(Symbole.of(Integer.parseInt(input)));
|
||||
} catch (NumberFormatException e) {
|
||||
Console.errorln("Veuillez entrer un nombre valide");
|
||||
@@ -137,7 +146,20 @@ public class Grille {
|
||||
|
||||
case 2: // Caractères
|
||||
if (input.length() == 1) {
|
||||
try {
|
||||
Symbole charTemp = Symbole.of(input);
|
||||
//Evaluation de la du caractère qui vient d'être saisit
|
||||
for (Symbole symbole : symbolesPossibles) {
|
||||
if (Objects.equals(charTemp.toString(), symbole.toString())) {
|
||||
Console.errorln("Ce symbole existe déja, veuillez entrer un autre symbole");
|
||||
throw new NumberFormatException("Ce symbole existe déja");
|
||||
}
|
||||
}
|
||||
symbolesPossibles.add(Symbole.of(input.charAt(0)));
|
||||
}catch (NumberFormatException e) {
|
||||
Console.errorln("Veuillez entrer un caractère valide");
|
||||
i--;
|
||||
}
|
||||
} else {
|
||||
Console.errorln("Veuillez entrer un seul caractère");
|
||||
i--;
|
||||
@@ -146,13 +168,25 @@ public class Grille {
|
||||
|
||||
case 3: // Texte/Emoji
|
||||
if (!input.isEmpty()) {
|
||||
try {
|
||||
Symbole textTemp = Symbole.of(input);
|
||||
//Evaluation de la du caractère qui vient d'être saisit
|
||||
for (Symbole symbole : symbolesPossibles) {
|
||||
if (Objects.equals(textTemp.toString(), symbole.toString())) {
|
||||
Console.errorln("Ce symbole existe déja, veuillez entrer un autre symbole");
|
||||
throw new NumberFormatException("Ce symbole existe déja");
|
||||
}
|
||||
}
|
||||
symbolesPossibles.add(Symbole.of(input));
|
||||
}catch (NumberFormatException e) {
|
||||
Console.errorln("Veuillez entrer un texte ou un emoji valide");
|
||||
i--;
|
||||
}
|
||||
} else {
|
||||
Console.errorln("Le symbole ne peut pas être vide");
|
||||
i--;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
Console.errorln("Type non supporté");
|
||||
return;
|
||||
|
||||
@@ -32,8 +32,8 @@ public class TestBloc {
|
||||
sudoku.getGrille().setCase(5, 6, Symbole.of(7));
|
||||
sudoku.getGrille().setCase(0, 7, Symbole.of(8));
|
||||
sudoku.getGrille().setCase(4, 8, Symbole.of(9));
|
||||
//doublon ligne
|
||||
sudoku.getGrille().setCase(0, 1, Symbole.of(1));
|
||||
//doublon bloc
|
||||
sudoku.getGrille().setCase(1, 1, Symbole.of(1));
|
||||
|
||||
sudoku.getGrille().createSquareBlocs();
|
||||
|
||||
|
||||
@@ -34,8 +34,8 @@ public class TestColonne {
|
||||
sudoku.getGrille().setCase(5, 6, Symbole.of(7));
|
||||
sudoku.getGrille().setCase(0, 7, Symbole.of(8));
|
||||
sudoku.getGrille().setCase(4, 8, Symbole.of(9));
|
||||
//doublon ligne
|
||||
sudoku.getGrille().setCase(0, 0, Symbole.of(1));
|
||||
//doublon colonne
|
||||
sudoku.getGrille().setCase(4, 0, Symbole.of(1));
|
||||
|
||||
sudoku.getGrille().createSquareBlocs();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user