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 9b06103b077fa0d1a16e95df582ecd59adc7dbd7..aabe3040d4946d838f6870e37da699b1afb81c92 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.c
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.c
@@ -6,7 +6,7 @@ agent_t * initAgent (){
         printf("erreur alloc\n  ");
         exit (1);
     }  
-    agent->x=(16+rand()%16)*BLOCK_SIZE;
+    agent->x=(16+rand()%14)*BLOCK_SIZE;
     agent->y=(1+rand()%14)*BLOCK_SIZE;
     agent->high=2*BLOCK_SIZE;
     agent->weight=2*BLOCK_SIZE; 
@@ -92,7 +92,6 @@ float ***** allocateAndInitiateQ(){
     return q;
 }
 
-// attention il manque 3 lignes
 void writeQ(float *****Q){
     int i, j, k, l, m ;
     FILE * fp = fopen("q.txt", "w+");
@@ -247,6 +246,29 @@ int setReward(int xAgent, int yAgent, int dropZone){
         reward=1;
     } 
     return (reward); 
-}  
+} 
+
+float defineAngle (int xCanon, int yCanon , int xDropPoint, int yDropPoint){
+    float distance;
+    float angleSin;
 
+    distance= sqrtf( powf((float)(xDropPoint-xCanon),2)+powf((float)(yDropPoint-yCanon),2)); 
+    angleSin = asinf(distance/(xDropPoint-xCanon));
+    return angleSin;
+}
+
+void traningAgent ( int numberRun, int numberStep, float *****Q) {
+    int i ; 
+    int action;
+    point_t canon ; 
+    point_t dropPoint ; 
+    
+    while (numberRun>0){
+        canon=initPoint(0); 
+        dropPoint= initPoint(1);
+        for (i=0; i< numberStep;i++){ 
+
+        } 
+    } 
+} 
 
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 15cf2773f949b6b0dc8f461c4d4b4bb1d486d04b..48b0f6e6b1fbafbe00af3b08b19a05259e5fe929 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.h
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.h
@@ -37,6 +37,12 @@ typedef struct line {
 
 }line_t,*ptline_t; 
 
+typedef struct point{
+    int x;
+    int y; 
+} point_t ; 
+
+
 agent_t* initAgent ( );
 void moveAgent(agent_t * agent, int choice);
 float ***** allocateAndInitiateQ();