From d0ed0efe4bd5178d413cd7c2272ff1aebbb19cb6 Mon Sep 17 00:00:00 2001
From: maberet <maberet@ada.local.isima.fr>
Date: Fri, 1 Jul 2022 10:31:45 +0200
Subject: [PATCH]  commit pour recup le main

---
 .../jeu_appren_par_renfo/src/main.c           |  1 +
 .../jeu_appren_par_renfo/src/qlearn.c         | 28 +++++++++++++++++--
 .../jeu_appren_par_renfo/src/qlearn.h         |  3 +-
 3 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/main.c b/travail_de_groupe/jeu_appren_par_renfo/src/main.c
index 2d9d02a..f93a0f1 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/main.c
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/main.c
@@ -21,6 +21,7 @@ int main(){
     // initKeys();
     
     // mainLoop();
+    freeQ(Q);
 
 
     //mainLoop();
diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.c b/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.c
index 376b7a5..d078cb9 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.c
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.c
@@ -367,7 +367,31 @@ void freeStack(stack_t *stack)
     }
 }
 
+void freeQ(float ***** Q){
+     int i,j,k,l;
+    
+    for(i = 0; i <  NUMBER_ZONE_RECEIVER; i++){  
+        
+
+        for(j = 0; j< NUMBER_ZONE_SHOOTER; j++){
 
+            for(k = 0; k <3 ; k++){
+                
+                for(l = 0; l<5 ; l++){
+                    free(Q[i][j][k][l]);
+                        
+                }
+                free(Q[i][j][k]); 
+
+            }
+            free(Q[i][j]);
+        }
+        free(Q[i]);  
+    }
+    free(Q);
+    Q=NULL;
+    
+} 
 
 void traningAgent ( int numberRun, int numberStep, float *****Q) {// pour avoir la bonne taille il faut diviser par block size 
     int i ; 
@@ -408,7 +432,7 @@ void traningAgent ( int numberRun, int numberStep, float *****Q) {// pour avoir
                             reward=0; 
                             //printf (" %d \n  ", m);
                             while(i>0){
-                                printf("%d %d \n  ",agent->x ,agent->y );
+                               // printf("%d %d \n  ",agent->x ,agent->y );
                                 action =takeAction(agent->x ,agent->y , Q, canonZone, zoneAngleH, zoneAngleF, greedy);
                                 agentZone= convertIntoZone( agent->x,agent->y ); 
                                 line.receiverZone= agentZone; 
@@ -466,7 +490,7 @@ void traningAgent ( int numberRun, int numberStep, float *****Q) {// pour avoir
                     } 
                 }
             } writeQ(Q);
-        if ( numberRun%10000==1){printf (" %d \n  ", numberRun);} 
+        if (n%10000==1){printf (" %d \n  ", n);} 
         greedy = greedy - 1/(n+1);
         n++; 
     }
diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.h b/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.h
index 62b8a9e..af23356 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.h
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.h
@@ -11,7 +11,7 @@
 #define M_PI 3.14159265358979323846
 
 #define LEARN_RATE 0.8
-#define DISCOUNT 0.2
+#define DISCOUNT 0.8
 
 
 
@@ -71,6 +71,7 @@ int fullStack(stack_t *stack);
 void actionStack(stack_t *stack, line_t line);
 line_t unStack(stack_t *stack);
 void freeStack(stack_t *stack);
+void freeQ(float ***** Q);
 void traningAgent( int numberRun, int numberStep, float *****Q);
 void readQFromFile(float *****Q);
 #endif
\ No newline at end of file
-- 
GitLab