double tests_generation_suivante_M(void) { double results = 0; int i, j; int **colonie = colonie_creer(N, M); int **colonieAn1 = colonie_creer(N, M); int **colonieAn2 = colonie_creer(N, M); int B[9] = { 0, 1, 0, 0, 0, 0, 0, 0, 1 }; // 1 ou 8 voisin = vivre ! int S[9] = { 0 }; // ne jamais survivre colonie[1][1] = CELLULE_VIVANTE; generation_suivante_M(colonie, colonieAn1, N, M, B, S); for (i = 0; i < N; i++) { for (j = 0; j < M; j++) { if (i == 1 && 1 == j) results += (colonieAn1[i][j] == CELLULE_MORTE); else results += (colonieAn1[i][j] == CELLULE_VIVANTE); } } generation_suivante_M(colonieAn1, colonieAn2, N, M, B, S); for (i = 0; i < N; i++) { for (j = 0; j < M; j++) { if (i == 1 && 1 == j) results += (colonieAn2[i][j] == CELLULE_VIVANTE); else results += (colonieAn2[i][j] == CELLULE_MORTE); } } colonie_detruire(colonie, N, M); colonie_detruire(colonieAn1, N, M); colonie_detruire(colonieAn2, N, M); return results / ((N*M)*2); }
int main(void) { int n=0; int m=0; dimensionnement(&n, &m); int **tab=calloc(n, sizeof(int*)); for(int i=0;i<n;++i) { tab[i]=calloc(m, sizeof(int)); } initialisation(tab, n, m); int nbgen=nb_generation(); printf("Vous avez demandé %d générations.\n", nbgen); int B[9]; for(int i=0;i<9;++i) { B[i]=0; } int S[9]; for(int i=0;i<9;++i) { S[i]=0; } saisie_B_M(B); saisie_S_M(S); for(int i=0;i<9;++i) { printf("%d ", i); } printf("\n"); printf("B :\n"); for(int i=0;i<9;++i) { printf("%d ", B[i]); } printf("\n"); printf("S :\n"); for(int i=0;i<9;++i) { printf("%d ", S[i]); } printf("\n"); printf("génération n°1 :\n"); affiche(tab, n, m); /**/ int **tab_t=calloc(n, sizeof(int*)); for(int i=0;i<n;++i) { tab_t[i]=calloc(m, sizeof(int)); } _initialisation2(tab_t, n, m); /**/ int **tmp; for(int i=2;i<=nbgen;++i) { printf("génération n°%d :\n", i); generation_suivante_M(tab, tab_t, n, m, B, S); tmp=tab;tab=tab_t;tab_t=tmp; affiche(tab, n, m); } return EXIT_SUCCESS; }
void jeu_M(int **tab1, int n, int m, int B[9], int S[9], int ng) { printf("génération n°1 :\n"); affiche(tab1, n, m); int **tab_t=calloc(n, sizeof(int*)); for(int i=0;i<n;++i) { tab_t[i]=calloc(m, sizeof(int)); } _initialisation2(tab_t, n, m); int **tmp; for(int i=2;i<=ng;++i) { printf("génération n°%d :\n", i); generation_suivante_M(tab1, tab_t, n, m, B, S); tmp=tab1;tab1=tab_t;tab_t=tmp; affiche(tab1, n, m); } }