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();
|
sudoku.getGrille().printSymbolesPossibles();
|
||||||
|
|
||||||
//Création d'un second sudoku
|
//Création d'un second sudoku
|
||||||
|
System.out.println("Création d'un second SUDOKU");
|
||||||
|
|
||||||
Sudoku sudoku2 = new Sudoku(9);
|
Sudoku sudoku2 = new Sudoku(9);
|
||||||
sudoku2.getGrille().askSetSymbolesPossibles();
|
sudoku2.getGrille().askSetSymbolesPossibles();
|
||||||
|
|
||||||
|
System.out.println("Symboles possibles :");
|
||||||
|
sudoku2.getGrille().printSymbolesPossibles();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package sudoku;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
import sudoku.core.Console;
|
import sudoku.core.Console;
|
||||||
@@ -128,6 +129,14 @@ public class Grille {
|
|||||||
switch (choix) {
|
switch (choix) {
|
||||||
case 1: // Nombres
|
case 1: // Nombres
|
||||||
try {
|
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)));
|
symbolesPossibles.add(Symbole.of(Integer.parseInt(input)));
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
Console.errorln("Veuillez entrer un nombre valide");
|
Console.errorln("Veuillez entrer un nombre valide");
|
||||||
@@ -137,7 +146,20 @@ public class Grille {
|
|||||||
|
|
||||||
case 2: // Caractères
|
case 2: // Caractères
|
||||||
if (input.length() == 1) {
|
if (input.length() == 1) {
|
||||||
symbolesPossibles.add(Symbole.of(input.charAt(0)));
|
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 {
|
} else {
|
||||||
Console.errorln("Veuillez entrer un seul caractère");
|
Console.errorln("Veuillez entrer un seul caractère");
|
||||||
i--;
|
i--;
|
||||||
@@ -146,13 +168,25 @@ public class Grille {
|
|||||||
|
|
||||||
case 3: // Texte/Emoji
|
case 3: // Texte/Emoji
|
||||||
if (!input.isEmpty()) {
|
if (!input.isEmpty()) {
|
||||||
symbolesPossibles.add(Symbole.of(input));
|
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 {
|
} else {
|
||||||
Console.errorln("Le symbole ne peut pas être vide");
|
Console.errorln("Le symbole ne peut pas être vide");
|
||||||
i--;
|
i--;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Console.errorln("Type non supporté");
|
Console.errorln("Type non supporté");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -32,8 +32,8 @@ public class TestBloc {
|
|||||||
sudoku.getGrille().setCase(5, 6, Symbole.of(7));
|
sudoku.getGrille().setCase(5, 6, Symbole.of(7));
|
||||||
sudoku.getGrille().setCase(0, 7, Symbole.of(8));
|
sudoku.getGrille().setCase(0, 7, Symbole.of(8));
|
||||||
sudoku.getGrille().setCase(4, 8, Symbole.of(9));
|
sudoku.getGrille().setCase(4, 8, Symbole.of(9));
|
||||||
//doublon ligne
|
//doublon bloc
|
||||||
sudoku.getGrille().setCase(0, 1, Symbole.of(1));
|
sudoku.getGrille().setCase(1, 1, Symbole.of(1));
|
||||||
|
|
||||||
sudoku.getGrille().createSquareBlocs();
|
sudoku.getGrille().createSquareBlocs();
|
||||||
|
|
||||||
|
|||||||
@@ -34,8 +34,8 @@ public class TestColonne {
|
|||||||
sudoku.getGrille().setCase(5, 6, Symbole.of(7));
|
sudoku.getGrille().setCase(5, 6, Symbole.of(7));
|
||||||
sudoku.getGrille().setCase(0, 7, Symbole.of(8));
|
sudoku.getGrille().setCase(0, 7, Symbole.of(8));
|
||||||
sudoku.getGrille().setCase(4, 8, Symbole.of(9));
|
sudoku.getGrille().setCase(4, 8, Symbole.of(9));
|
||||||
//doublon ligne
|
//doublon colonne
|
||||||
sudoku.getGrille().setCase(0, 0, Symbole.of(1));
|
sudoku.getGrille().setCase(4, 0, Symbole.of(1));
|
||||||
|
|
||||||
sudoku.getGrille().createSquareBlocs();
|
sudoku.getGrille().createSquareBlocs();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user