From 8b36b65eb8993f1dd5491cb518d4280b4aac282e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?H=C3=A9l=C3=A8ne=20TRAN?= <helene.tran@ensiie.fr>
Date: Wed, 27 Dec 2017 14:25:53 +0100
Subject: [PATCH] =?UTF-8?q?V=C3=A9rification=20pour=20RS4=20presque=20ok?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Labgen/a.out    | Bin 13656 -> 13800 bytes
 Labgen/labgen.c |  41 ++++++++++++++++++++++++++++++++---------
 2 files changed, 32 insertions(+), 9 deletions(-)

diff --git a/Labgen/a.out b/Labgen/a.out
index 26c1cd3880170181255f8f5deff8e44319d3e462..a7f31d8ddde3f96c4943183255bde0d4207c6297 100755
GIT binary patch
delta 4008
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

delta 3853
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

diff --git a/Labgen/labgen.c b/Labgen/labgen.c
index 62d4a14..313e927 100644
--- a/Labgen/labgen.c
+++ b/Labgen/labgen.c
@@ -198,20 +198,31 @@ int RS3_check(){
 }
 
 /* RS4 : L'entrée et les sorties du labyrinthe doivent se situer sur la périphérie
- * du labyrinthe */
+ * du labyrinthe
+ * E est le point d'entrée
+ * S est un tableau dynamique de l'ensemble des sorties
+ * nb_S est le nombre de sorties
+ * size est un point donnant la taille du tableau */
 int RS4(Point E, Point* S, int nb_S, Point size){
    int i;
    Point tmp;
 
    if (S == NULL){
-     printf("RS4 : La liste des sorties est vide.\n");
+     fprintf(stderr,"RS4 : La liste des sorties est non initialisée.\n");
      exit(1);
    }
 
-   if (E.c != 0 && E.l != 0 && E.c != size.c && E.l != size.l){
+   else if (nb_S == 0){
+     printf("RS4 : La liste des sorties est vide.\n");
+     return 0;
+   }
+
+   /* Vérification pour l'entrée */
+   else if (E.c != 0 && E.l != 0 && E.c != size.c && E.l != size.l){
       return 0;
    }
 
+   /* Vérification pour toutes les sorties */
    else {
      for (i=0 ; i<nb_S ; i++){
        tmp = S[i];
@@ -224,7 +235,9 @@ int RS4(Point E, Point* S, int nb_S, Point size){
  }
 
 
-/*int main(){
+/* Test des fonctions pour les règles sémantiques */
+int main(){
+  char*** matrice = create_matrice(5,6);
   Point size = new_point(5,6);
 
   Point entree1 = new_point(0,0);
@@ -232,11 +245,20 @@ int RS4(Point E, Point* S, int nb_S, Point size){
   Point entree3 = new_point(5,0);
   Point entree4 = new_point(0,5);
 
+  change_val_matrice(entree1,"E",matrice);
+  change_val_matrice(entree2,"E",matrice);
+  change_val_matrice(entree3,"E",matrice);
+  change_val_matrice(entree4,"E",matrice);
+
 
   Point* listeS = NULL;
   listeS = calloc(1,sizeof(Point));
-  listeS[0] = new_point(0,0);
-  printf("listeS[0] : (%d,%d)\n",listeS[0].c, listeS[0].l);
+  listeS[0] = new_point(5,6);
+  /* A tester : pour plusieurs sorties */
+  change_val_matrice(new_point(5,6),"S",matrice);
+  affichmat(matrice);
+
+  printf("\nlisteS[0] : (%d,%d)\n",listeS[0].c, listeS[0].l);
 
   printf("Test entree1 : %d\n", RS4(entree1,listeS,1,size));
   printf("Test entree2 : %d\n", RS4(entree2,listeS,1,size));
@@ -245,11 +267,12 @@ int RS4(Point E, Point* S, int nb_S, Point size){
 
 
   return 0;
-}*/
+}
 
 
 
-int main () {
+/* Test des fonctions de base de la matrice et de listevars */
+/*int main () {
   char*** matrice = create_matrice(5,6);
 
   Point p1 = new_point(4,2);
@@ -278,4 +301,4 @@ int main () {
   printf("Deuxième valeur : %d\n",listevars.val[1]);
 
   return 0;
-}
+}*/
-- 
GitLab