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