diff --git a/travail_individuel/Belkhiri/GameOfLife/Makefile b/travail_individuel/Belkhiri/GameOfLife/Makefile index e17f11daea9751b0b718d7a24c09300edcf5fc2b..0e52781044cfbc1db737ab857c43b10fb66d8d01 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 Binary files a/travail_individuel/Belkhiri/GameOfLife/run and b/travail_individuel/Belkhiri/GameOfLife/run differ diff --git a/travail_individuel/Belkhiri/GameOfLife/src/map.c b/travail_individuel/Belkhiri/GameOfLife/src/map.c index 18514b06d526f8d0a3e783b87d0ece07e298756b..29713a65d5bd051ec1ad3887d987cd5525de4fdb 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 72d03795076a8132352aff014dee2cc93ace2a33..7a47a8b2fb659c76aafa9d2b53ac8f09b8584c7a 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 309a771c82d7dd3f4b33f56ea7b02072b48f2784..378b3babac3150c4106fb22f5c08c15859eac6c0 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++){