From 41475c4f6a9c8bcce3886b4100f89ef6c6b482c9 Mon Sep 17 00:00:00 2001 From: belkhiritaha <belkhiri.taha53@gmail.com> Date: Tue, 21 Jun 2022 14:38:30 +0200 Subject: [PATCH] detection de cycles ne marche que pour des MAPSIZE < 7 --- .../Belkhiri/GameOfLife/Makefile | 2 +- travail_individuel/Belkhiri/GameOfLife/run | Bin 23968 -> 24112 bytes .../Belkhiri/GameOfLife/src/map.c | 6 +++--- .../Belkhiri/GameOfLife/src/map.h | 2 +- .../Belkhiri/GameOfLife/src/utility.c | 20 ++++++++++++++---- 5 files changed, 21 insertions(+), 9 deletions(-) diff --git a/travail_individuel/Belkhiri/GameOfLife/Makefile b/travail_individuel/Belkhiri/GameOfLife/Makefile index e17f11d..0e52781 100644 --- a/travail_individuel/Belkhiri/GameOfLife/Makefile +++ b/travail_individuel/Belkhiri/GameOfLife/Makefile @@ -1,6 +1,6 @@ CC=gcc -LDFLAG=$(shell sdl2-config --cflags --libs) -lm -lSDL2_ttf -D_REENTRANT -lSDL2_image -pthread +LDFLAG=$(shell sdl2-config --cflags --libs) -Wall -Wextra -lm -lSDL2_ttf -D_REENTRANT -lSDL2_image -pthread CFLAG=-Wall $(shell sdl2-config --cflags --libs) EXEC=run diff --git a/travail_individuel/Belkhiri/GameOfLife/run b/travail_individuel/Belkhiri/GameOfLife/run index 822be8dad667a5b253701b229c6da36d40433f68..6f7bac53ad19988d9b9c8582eb4bb0c0f8d3234f 100755 GIT binary patch literal 24112 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 literal 23968 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 Zf~SdLeus&H=z}33l7T@AO#>R20RXF=S@i$_ diff --git a/travail_individuel/Belkhiri/GameOfLife/src/map.c b/travail_individuel/Belkhiri/GameOfLife/src/map.c index 18514b0..29713a6 100644 --- a/travail_individuel/Belkhiri/GameOfLife/src/map.c +++ b/travail_individuel/Belkhiri/GameOfLife/src/map.c @@ -51,14 +51,14 @@ void writeMap(char *filename) fclose(f); } -int MapToBinary(int ** map) +long long int MapToBinary(int ** map) { - int binary = 0; + long long int binary = 0; for (int i = 0; i < MAPSIZE; i++) { for (int j = 0; j < MAPSIZE; j++) { - binary += map[i][j] * pow(2, (i * MAPSIZE + j)); + binary += (long long int)map[i][j] * powl(2, (i * MAPSIZE + j)); } } return binary; diff --git a/travail_individuel/Belkhiri/GameOfLife/src/map.h b/travail_individuel/Belkhiri/GameOfLife/src/map.h index 72d0379..7a47a8b 100644 --- a/travail_individuel/Belkhiri/GameOfLife/src/map.h +++ b/travail_individuel/Belkhiri/GameOfLife/src/map.h @@ -9,6 +9,6 @@ extern int ** map; void printMap(); void initMap(); void writeMap(char* filename); -int MapToBinary(int ** map); +long long int MapToBinary(int ** map); #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 309a771..378b3ba 100644 --- a/travail_individuel/Belkhiri/GameOfLife/src/utility.c +++ b/travail_individuel/Belkhiri/GameOfLife/src/utility.c @@ -4,7 +4,7 @@ int surviveRule[NB_RULES] = {0, 0, 1, 1, 0, 0, 0, 0, 0}; int bornRule[NB_RULES] = {0, 0, 0, 1, 0, 0, 0, 0, 0}; int stable; -int BinaryList[LIST_SIZE]; +long long int BinaryList[LIST_SIZE]; int BinaryListSize; int survivingNeighbors(int x, int y){ @@ -18,16 +18,28 @@ int survivingNeighbors(int x, int y){ return count; } -void addBinaryToList(int binary){ +void addBinaryToList(long long int binary){ if (BinaryListSize == LIST_SIZE) return; BinaryList[BinaryListSize] = binary; BinaryListSize++; } + + +void printBinaryList(){ + for (int i=0; i<BinaryListSize; i++){ + printf("%lld ", BinaryList[i]); + } + printf("\n"); +} + + void checkForCycle(){ int i = 0; - while (i < BinaryListSize){ + printBinaryList(); + while (i < BinaryListSize-1){ if (BinaryList[i] == BinaryList[BinaryListSize - 1]){ + printf("%lld\n %lld\n", BinaryList[i], BinaryList[BinaryListSize - 1]); printf("Cycle detected!\n"); return; } @@ -40,7 +52,7 @@ void updateMap(){ int newMap[MAPSIZE][MAPSIZE]; stable = 1; - int binary = MapToBinary(map); + long long int binary = MapToBinary(map); addBinaryToList(binary); for (int i=0; i<MAPSIZE; i++){ -- GitLab