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