#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 {
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;
}
}
}
void jeudelavie(DrawingWindow& w)
{
- w.setBgColor(BORDURE);
+ w.setBgColor(MORT);
w.clearGraph();
init(w);
w.sync();
if (gen % 10 == 0)
std::cerr << "generation " << gen << std::endl;
update0(w);
- // w.sync();
update1(w);
- // w.sync();
+ w.sync();
}
}