From ac0fcc3bc781220358b20b915c5f10eca07c0aee Mon Sep 17 00:00:00 2001
From: HydroFlo <HydroGamer@outlook.fr>
Date: Tue, 9 Jan 2024 12:51:42 +0100
Subject: [PATCH] controle de saisie pour enlever le readInt

---
 S1.02/Jeu/classes/Labyrinthe.class | Bin 13961 -> 14520 bytes
 S1.02/Jeu/src/Labyrinthe.java      |  37 ++++++++++++++++++++++++++++-
 2 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/S1.02/Jeu/classes/Labyrinthe.class b/S1.02/Jeu/classes/Labyrinthe.class
index 29aa85b21757c0e0feca8c46d266f4e73015c800..3213c314115800597a45cd8414591322450880e8 100644
GIT binary patch
delta 2975
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

delta 2328
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
batD~)1t#|}f*L?v42+EX84ofZW{?B`kY*Ov

diff --git a/S1.02/Jeu/src/Labyrinthe.java b/S1.02/Jeu/src/Labyrinthe.java
index effadd1..52c51a0 100644
--- a/S1.02/Jeu/src/Labyrinthe.java
+++ b/S1.02/Jeu/src/Labyrinthe.java
@@ -567,6 +567,29 @@ class Labyrinthe extends Program{
         assertFalse(equals(tab1, tab4));
     }
 
+    boolean estInt(String verif){
+        if(length(verif) == 0){
+            return false;
+        }
+        for(int i = 0; i < length(verif); i ++){
+            if(charAt(verif, i) < '0' || '9' < charAt(verif, i)){
+                return false;
+            }
+        }
+        return true;
+    }
+
+    void testEstInt(){
+        String mot1 = "0t6";
+        String mot2 = "54";
+        String mot3 = "Lolilol";
+        String mot4 = "";
+        assertFalse(estInt(mot1));
+        assertTrue(estInt(mot2));
+        assertFalse(estInt(mot3));
+        assertFalse(estInt(mot4));
+    }
+
     void algorithm(){
         Salle[][] lab = genererLab(3); //genere le Layrinthe
         String[][] questionTemp = load("ressources/ListeQuestion.csv");
@@ -574,7 +597,19 @@ class Labyrinthe extends Program{
         boolean ques = equals(toLowerCase(readString()), "o");
         if(ques){
             print("Combien voulez vous en ajouter ? : ");
-            int nbAjout = readInt();
+            int nbAjout = 0;
+            while(nbAjout <= 0){
+                String nb = readString();
+                while(!estInt(nb)){
+                    print("Veuillez entrer un nombre valide : ");
+                    nb = readString();
+                }
+                nbAjout = stringToInt(nb);
+                if(nbAjout <= 0 ){
+                    print("Veuillez choisir un nombre positif non nul : ");
+                }
+                
+            }
             ajoutQuestion(questionTemp, nbAjout);
             questionTemp = load("ressources/ListeQuestion.csv");
             afficheStringTab(questionTemp);
-- 
GitLab