From 185aca9d85d6c49cbc63e82d59c826552ee05886 Mon Sep 17 00:00:00 2001
From: maberet <maberet@ada.local.isima.fr>
Date: Thu, 30 Jun 2022 21:17:30 +0200
Subject: [PATCH] =?UTF-8?q?=20commit=20de=20la=20qlearn=20pour=206720=20?=
 =?UTF-8?q?=C3=A9tats?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../jeu_appren_par_renfo/Makefile             |  4 +-
 .../jeu_appren_par_renfo/src/main.c           |  7 ++-
 .../jeu_appren_par_renfo/src/map.h            |  2 +-
 .../jeu_appren_par_renfo/src/qlearn.c         | 58 +++++++++++++------
 .../jeu_appren_par_renfo/src/qlearn.h         |  2 +-
 5 files changed, 48 insertions(+), 25 deletions(-)

diff --git a/travail_de_groupe/jeu_appren_par_renfo/Makefile b/travail_de_groupe/jeu_appren_par_renfo/Makefile
index 8889fb4..c72220f 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/Makefile
+++ b/travail_de_groupe/jeu_appren_par_renfo/Makefile
@@ -1,7 +1,7 @@
 CC=gcc
 
-LDFLAG=$(shell sdl2-config --cflags --libs) -lm -lSDL2_ttf -D_REENTRANT -lSDL2_image -pthread
-CFLAG=-Wall $(shell sdl2-config --cflags --libs)
+LDFLAG=$(shell sdl2-config --cflags --libs) -lm -lSDL2_ttf -D_REENTRANT -lSDL2_image -pthread -g
+CFLAG=-Wall $(shell sdl2-config --cflags --libs) -g
 
 EXEC=run
 SRC=$(wildcard src/*.c)
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 8a59783..2d9d02a 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/main.c
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/main.c
@@ -8,9 +8,10 @@ int main(){
     int i= 10;
     
     srand ( time(NULL));
-    while (i>0){
+    // while (i>0){
     traningAgent(100000,30, Q);
-    i--;} 
+    // i--;} 
+    //printf(" %d \n ", convertIntoZone(agent->x,agent->y));
     
     writeQ(Q);
     // running = 1;
@@ -22,5 +23,5 @@ int main(){
     // mainLoop();
 
 
-    mainLoop();
+    //mainLoop();
 }
diff --git a/travail_de_groupe/jeu_appren_par_renfo/src/map.h b/travail_de_groupe/jeu_appren_par_renfo/src/map.h
index 20248bf..e291f86 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/map.h
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/map.h
@@ -8,7 +8,7 @@
 //#include "main.h"
 
 #define MAP_WIDTH 31
-#define MAP_HEIGHT 11
+#define MAP_HEIGHT 10
 
 extern int map[MAP_HEIGHT][MAP_WIDTH];
 
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 7850eb5..376b7a5 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.c
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.c
@@ -18,21 +18,36 @@ agent_t * initAgent (){
 void moveAgent(agent_t * agent, int choice){
     switch (choice)
     {
-    case BACK:
-        agent->x += 1*agent->speed; //Avancer 
-        break;
+   case BACK:
+                if (agent->x + 1 < (MAP_WIDTH-1) * 1)
+                {
+                    agent->x += 1;
+                }
+        
+                break;
 
-    case FOWARD:
-        agent->x -= 1*agent->speed; // reculer 
-        break;
+            case FOWARD:
+                if (agent->x - 1 > (MAP_WIDTH/2 + 1) * 1)
+                {
+                    agent->x -= 1;
+                }
+            
+                break;
 
-    case UP:
-        agent->y += 1*agent->speed;
-        break;
+            case UP:
+                if (agent->y - 1 > 1)
+                {
+                    agent->y -= 1;
+                }
+                break;
 
-    case DOWN:
-        agent->y -= 1*agent->speed;
-        break;
+            case DOWN:
+                if (agent->y + 1 < (MAP_HEIGHT-1) * 1)
+                {
+                    agent->y += 1;
+                }
+              
+                break;
     case WAIT: 
         break; 
     }
@@ -144,14 +159,20 @@ int argmax(float * arr){
     return maxIndex;
 }
 
+// int convertIntoZone(int xAgent,int yAgent){
+//     int zone=0; 
+//     xAgent=xAgent;
+//     yAgent=yAgent;
+//     if(xAgent> 15 && xAgent<23 && yAgent<=4){zone=0;} 
+//     else if(xAgent>22 && xAgent<31 && yAgent<=4){zone=1;} 
+//     else if(xAgent> 15 && xAgent<23 && yAgent<9){zone=2;}
+//     else if(xAgent> 22 && xAgent<= 31&& yAgent<9){zone=3;}
+     
+//     return zone ; 
+// }
 int convertIntoZone(int xAgent,int yAgent){
     int zone=0; 
-    xAgent=xAgent;
-    yAgent=yAgent;
-    if(xAgent> 15 && xAgent<23 && yAgent<=4){zone=0;} 
-    else if(xAgent>22 && xAgent<31 && yAgent<=4){zone=1;} 
-    else if(xAgent> 15 && xAgent<23 && yAgent<9){zone=2;}
-    else if(xAgent> 22 && xAgent<= 31&& yAgent<9){zone=3;}
+    zone = (yAgent-1)*14 +(xAgent -16)%14 ;
      
     return zone ; 
 }
@@ -387,6 +408,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 );
                                 action =takeAction(agent->x ,agent->y , Q, canonZone, zoneAngleH, zoneAngleF, greedy);
                                 agentZone= convertIntoZone( agent->x,agent->y ); 
                                 line.receiverZone= agentZone; 
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 0de0a45..62b8a9e 100644
--- a/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.h
+++ b/travail_de_groupe/jeu_appren_par_renfo/src/qlearn.h
@@ -17,7 +17,7 @@
 
 
 #define NUMBER_ZONE_SHOOTER 4
-#define NUMBER_ZONE_RECEIVER 4
+#define NUMBER_ZONE_RECEIVER 112
 #define NUMBER_ACTION 5 
 
 #define FOWARD 0//<--
-- 
GitLab