diff --git a/app/src/main/java/sudoku/App.java b/app/src/main/java/sudoku/App.java index e9d84f3..f0b1a3d 100644 --- a/app/src/main/java/sudoku/App.java +++ b/app/src/main/java/sudoku/App.java @@ -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(); } } diff --git a/app/src/main/java/sudoku/Grille.java b/app/src/main/java/sudoku/Grille.java index 3f64a28..cac9712 100644 --- a/app/src/main/java/sudoku/Grille.java +++ b/app/src/main/java/sudoku/Grille.java @@ -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) { - 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 { Console.errorln("Veuillez entrer un seul caractère"); i--; @@ -146,13 +168,25 @@ public class Grille { case 3: // Texte/Emoji 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 { Console.errorln("Le symbole ne peut pas être vide"); i--; } break; - default: Console.errorln("Type non supporté"); return; diff --git a/app/src/test/java/sudoku/TestBloc.java b/app/src/test/java/sudoku/TestBloc.java index 62ada44..72571a4 100644 --- a/app/src/test/java/sudoku/TestBloc.java +++ b/app/src/test/java/sudoku/TestBloc.java @@ -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(); diff --git a/app/src/test/java/sudoku/TestColonne.java b/app/src/test/java/sudoku/TestColonne.java index b88e15c..f400181 100644 --- a/app/src/test/java/sudoku/TestColonne.java +++ b/app/src/test/java/sudoku/TestColonne.java @@ -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();