From 814e3cba820f1beb44619bed02ae4e1c4cdd22e6 Mon Sep 17 00:00:00 2001 From: Taha Belkhiri <belkhiri.taha53@gmail.com> Date: Tue, 21 Jun 2022 13:19:50 +0200 Subject: [PATCH] detection cycles/etat stable --- travail_individuel/Belkhiri/GameOfLife/run | Bin 23856 -> 23888 bytes .../Belkhiri/GameOfLife/src/map.c | 103 ++++++++++++------ .../Belkhiri/GameOfLife/src/render.c | 13 +++ .../Belkhiri/GameOfLife/src/render.h | 2 + .../Belkhiri/GameOfLife/src/utility.c | 3 +- 5 files changed, 86 insertions(+), 35 deletions(-) diff --git a/travail_individuel/Belkhiri/GameOfLife/run b/travail_individuel/Belkhiri/GameOfLife/run index 87257857f689c489c5941519e96c548f7a7f12f9..b4b5d1dda336d41fd1db836aed18335e57e069d6 100755 GIT binary patch delta 5185 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 delta 4955 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 diff --git a/travail_individuel/Belkhiri/GameOfLife/src/map.c b/travail_individuel/Belkhiri/GameOfLife/src/map.c index 3d66af1..a220bc3 100644 --- a/travail_individuel/Belkhiri/GameOfLife/src/map.c +++ b/travail_individuel/Belkhiri/GameOfLife/src/map.c @@ -2,47 +2,56 @@ int MAPSIZE = 20; -int ** map; +int **map; -int *** mapList; +int ***mapList; -void allocateMap(){ - map = malloc(MAPSIZE * sizeof(int*)); - for(int i = 0; i < MAPSIZE; i++){ +void allocateMap() +{ + map = malloc(MAPSIZE * sizeof(int *)); + for (int i = 0; i < MAPSIZE; i++) + { map[i] = malloc(MAPSIZE * sizeof(int)); } } -void allocateMapList(int SIZE){ - mapList = malloc(SIZE * sizeof(int**)); +void allocateMapList(int SIZE) +{ + mapList = malloc(SIZE * sizeof(int **)); } - -void initMap() { +void initMap() +{ allocateMap(); allocateMapList(100); - for(int i = 0; i < MAPSIZE; i++){ - for(int j = 0; j < MAPSIZE; j++){ + for (int i = 0; i < MAPSIZE; i++) + { + for (int j = 0; j < MAPSIZE; j++) + { map[i][j] = 0; } } } - -void printMap(){ - for(int i = 0; i < MAPSIZE; i++){ - for(int j = 0; j < MAPSIZE; j++){ +void printMap() +{ + for (int i = 0; i < MAPSIZE; i++) + { + for (int j = 0; j < MAPSIZE; j++) + { printf("%d ", map[i][j]); } printf("\n"); } } - -void writeMap(char* filename){ - FILE* f = fopen(filename, "w"); - for(int i = 0; i < MAPSIZE; i++){ - for(int j = 0; j < MAPSIZE; j++){ +void writeMap(char *filename) +{ + FILE *f = fopen(filename, "w"); + for (int i = 0; i < MAPSIZE; i++) + { + for (int j = 0; j < MAPSIZE; j++) + { fprintf(f, "%d ", map[i][j]); } fprintf(f, "\n"); @@ -50,34 +59,62 @@ void writeMap(char* filename){ fclose(f); } -int ** saveMapState(){ - int ** mapCopy = malloc(MAPSIZE * sizeof(int*)); - for(int i = 0; i < MAPSIZE; i++){ +int **saveMapState() +{ + int **mapCopy = malloc(MAPSIZE * sizeof(int *)); + for (int i = 0; i < MAPSIZE; i++) + { mapCopy[i] = malloc(MAPSIZE * sizeof(int)); } - for(int i = 0; i < MAPSIZE; i++){ - for(int j = 0; j < MAPSIZE; j++){ + for (int i = 0; i < MAPSIZE; i++) + { + for (int j = 0; j < MAPSIZE; j++) + { mapCopy[i][j] = map[i][j]; } } return mapCopy; } -void addMapToList(int ** map){ +void addMapToList(int **map) +{ int i = 0; - while(mapList[i] != NULL){ + while (mapList[i] != NULL) + { i++; } mapList[i] = map; } -void checkForCycle(){ +void checkForCycle() +{ + // count number of maps saved int i = 0; - while(mapList[i] != NULL){ - if(mapList[i] == map){ - printf("Cycle detected at iteration: %d\n", i); - return; - } + while (mapList[i] != NULL) + { i++; } + + int j = 0; + for (j = 0; j < i; j++) + { + int cycle = 1; + // compare values of maps + int k = 0; + for (k = 0; k < MAPSIZE; k++) + { + for (int l = 0; l < MAPSIZE; l++) + { + if (mapList[j][k][l] != map[k][l]) + { + cycle = 0; + } + } + } + if (cycle == 1) + { + printf("Cycle found!\n"); + break; + } + } } \ No newline at end of file diff --git a/travail_individuel/Belkhiri/GameOfLife/src/render.c b/travail_individuel/Belkhiri/GameOfLife/src/render.c index 8ca7d3d..b1feb2e 100644 --- a/travail_individuel/Belkhiri/GameOfLife/src/render.c +++ b/travail_individuel/Belkhiri/GameOfLife/src/render.c @@ -135,6 +135,19 @@ void drawGame(){ SDL_RenderPresent(renderer); } +void drawStable(){ + char str[20] = "Stable state reached"; + SDL_Color textColor = {0, 0, 0}; + SDL_Surface * surface = TTF_RenderText_Solid(RobotoFont, str, textColor); + SDL_Texture * texture = SDL_CreateTextureFromSurface(renderer, surface); + + int titleWidth, titleHeight; + SDL_QueryTexture(texture, NULL, NULL, &titleWidth, &titleHeight); + + SDL_Rect titleRect = {ScreenDimension.w/2 - titleWidth/2, ScreenDimension.h/2 - titleHeight, titleWidth, titleHeight}; + SDL_RenderCopy(renderer, texture, NULL, &titleRect); +} + void MainLoop(){ CreateWindow(); diff --git a/travail_individuel/Belkhiri/GameOfLife/src/render.h b/travail_individuel/Belkhiri/GameOfLife/src/render.h index 05dfe33..956f3ad 100644 --- a/travail_individuel/Belkhiri/GameOfLife/src/render.h +++ b/travail_individuel/Belkhiri/GameOfLife/src/render.h @@ -15,4 +15,6 @@ extern SDL_DisplayMode ScreenDimension; void MainLoop(); +void drawStable(); + #endif \ No newline at end of file diff --git a/travail_individuel/Belkhiri/GameOfLife/src/utility.c b/travail_individuel/Belkhiri/GameOfLife/src/utility.c index 2eab021..6a1e6dd 100644 --- a/travail_individuel/Belkhiri/GameOfLife/src/utility.c +++ b/travail_individuel/Belkhiri/GameOfLife/src/utility.c @@ -39,7 +39,7 @@ void updateMap(){ } if (stable){ - printf("Stable state reached.\n"); + drawStable(); } for (int i=0; i<MAPSIZE; i++){ @@ -49,6 +49,5 @@ void updateMap(){ } addMapToList(map); - checkForCycle(); } -- GitLab