Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Cosmetics.
[graphlib.git] / jeudelavie / jeudelavie.cpp
index b78fb0d..6aefb3f 100644 (file)
@@ -5,10 +5,7 @@
 #define LARGEUR 1200
 #define HAUTEUR 900
 
-#define BORDURE  0x00ffffffU    // blanc
-#define NAISSANT 0x0000ff00U    // vert
 #define VIVANT   0x000000ffU    // bleu
-#define MOURANT  0x00ff0000U    // rouge
 #define MORT     0x00ffffffU    // blanc
 
 struct cell {
@@ -43,32 +40,28 @@ void init(DrawingWindow& w)
             cells[i][j].neigh = 0;
     for (int i = 0 ; i < LARGEUR ; ++i)
         for (int j = 0 ; j < HAUTEUR ; ++j) {
-            cells[i][j].next = (rand() < RAND_MAX / 2);
-            cells[i][j].now = !cells[i][j].next;
+            cells[i][j].now = cells[i][j].next = (rand() < RAND_MAX / 2);
             if (cells[i][j].now) {
                 majVoisins(i, j, 1);
                 dessine(w, i, j, VIVANT);
-            } else {
-                dessine(w, i, j, MORT);
             }
         }
 }
 
-void update0(DrawingWindow& w)
+void update0(DrawingWindow& w __attribute__((unused)))
 {
     for (int i = 0 ; i < LARGEUR ; ++i)
         for (int j = 0 ; j < HAUTEUR ; ++j) {
-            int n = cells[i][j].neigh;
-            if (cells[i][j].now) {
-                if (n < 2 || n > 3) {
-                    cells[i][j].next = false;
-                    dessine(w, i, j, MOURANT);
-                }
-            } else {
-                if (n == 3) {
-                    cells[i][j].next = true;
-                    dessine(w, i, j, NAISSANT);
-                }
+            switch (cells[i][j].neigh) {
+            case 2:
+                // cells[i][j].next = cells[i][j].now; // useless
+                break;
+            case 3:
+                cells[i][j].next = true;
+                break;
+            default:
+                cells[i][j].next = false;
+                break;
             }
         }
 }
@@ -95,7 +88,7 @@ void update1(DrawingWindow& w)
 
 void jeudelavie(DrawingWindow& w)
 {
-    w.setBgColor(BORDURE);
+    w.setBgColor(MORT);
     w.clearGraph();
     init(w);
     w.sync();
@@ -103,9 +96,8 @@ void jeudelavie(DrawingWindow& w)
         if (gen % 10 == 0)
             std::cerr << "generation " << gen << std::endl;
         update0(w);
-        //        w.sync();
         update1(w);
-        //        w.sync();
+        w.sync();
     }
 }