Exemplo n.º 1
0
int main(void){
	char path[]="../Data/grille.txt";
	GRILLE grille;	
	init_grille(grille);
	saisie_grille(grille,path);
	affiche_grille(grille);
	return 0;
}
Exemplo n.º 2
0
int main(void){
  GRILLE grille;
  CASE c;
  /* init_grille(grille); */
  /* affiche_grille(grille); */
  /* saisie_grille_clavier(grille);  */
  /* affiche_grille(grille); */
  /* saisie_grille_clavier_bis(grille);  */
  /* affiche_grille(grille); */
  saisie_grille(grille,"../donnees/grille1");
  affiche_grille(grille);
  init_case(&c);
  affiche_case(c);
  remplit_case(&c,3);
  affiche_case(c);
  return 0;
Exemplo n.º 3
0
int main (int argc, char ** argv) {
	
	if (argc != 2 )
	{
		printf("usage : main <fichier grille>");
		return 1;
	}

	grille g, gc;
	init_grille_from_file(argv[1],&g);
	alloue_grille (g.nbl, g.nbc, &gc);
	affiche_grille(g);
	
	debut_jeu(&g, &gc);

	libere_grille(&g);
	libere_grille(&gc);
	return 0;
}
Exemplo n.º 4
0
void debut_jeu(grille *g, grille *gc){
	char c = getchar(); 
	while (c != 'q') // touche 'q' pour quitter
	{ 
		switch (c) {
			case '\n' : 
			{ // touche "entree" pour évoluer
				evolue(g,gc);
				temps++; 
				efface_grille(*g);
				affiche_grille(*g);
				break;
			}
			case 'c' : 
			{ // touche "c" pour activer / desactiver le voisinage cyclique
				if (compte_voisins_vivants == compte_voisins_cyclique){
					compte_voisins_vivants = compte_voisins_non_cyclique;
					printf("voisinage non cyclique    \n");
				}
				else {
					compte_voisins_vivants = compte_voisins_cyclique;
					printf("voisinage cyclique      \n");
				}
				
				while(getchar() != '\n');
				printf("\n\e[%dA",3); 
				break;
			}
			case 'v' : 
			{ // touche "v" pour activer/desactiver le viellissement des cellules
				if (set_continue_vie == set_ne_viellit_pas){
					set_continue_vie = set_viellit;
					printf("viellissement ON     \n");
				}
				else {
					set_continue_vie = set_ne_viellit_pas;
					printf("viellissement OFF    \n");
				}
				while(getchar() != '\n');
				printf("\n\e[%dA",3); 
				break;
			}
			case 'o' :
			{ // teste si la colonie est oscillante
				periode = oscillante(*g);
				if (periode==0) printf("Colonie non-oscillante    \n");
				else printf("Colonie oscillante (période : %d)\n",periode);
				while(getchar() != '\n');
				printf("\n\e[%dA",3); 
				break;
			}
			default : 
			{ // touche non traitée
				printf("\n\e[1A");
				break;
			}
		}
		c = getchar(); 
	}
	return;	
}
Exemplo n.º 5
0
void debut_jeu(grille *g, grille *gc){
	char c = getchar(); 
    while (c != 'q') // touche 'q' pour quitter
    {
        printf("\e[J");
		switch (c) {
			case '\n' : 
            { // touche "entree" pour évoluer
				evolue(g,gc);
				efface_grille(*g);
				affiche_grille(*g);
				break;
			}
            case 'c' : // touche pour changer de mode cyclique/non-cyclique
            {
				cyclique=abs(cyclique-1);
                compte_voisins_vivants=(cyclique==0) ? compte_cyclique : compte_non_cyclique;
                printf("\n\e[1A");
				break;
            }
            case 'v' : // touche pour activer/désactiver le veillissement
            {
                viellissement=abs(viellissement-1);
                if (!viellissement)
                { //effacer les âges d'avant
                    int i,j;
                    for (i=0; i<g->nbl; i++)
                       for (j=0;j<g->nbc; j++)
                           if (est_vivante(i,j,*g)) set_vivante(i,j,*g);
                           else set_morte(i,j,*g);
                }
                printf("\n\e[1A");
				break;
			}
            case 'o' :  // touche pour tester si la colonie est oscillante
            {
                int periode=0, failsafe=0;
                grille gtest,gmorte; //g doit rester inchangée
                alloue_grille (g->nbl, g->nbc, &gtest);
                alloue_grille (g->nbl, g->nbc, &gmorte);
                copie_grille(*g,gtest);
                do {
                    periode++;
                    failsafe++;
                    evolue(&gtest,gc);
                } while (!( compare_grilles(gtest,*g) || compare_grilles(gtest,gmorte) )
                          && failsafe < MAX_TEST );
                //soit on retombe sur la même configuration (-> oscillant)
                //soit toutes les cellules seront mortes à un moment (-> pas oscillant)

                if (compare_grilles(gtest,gmorte) || failsafe==MAX_TEST)
                    printf("Pas oscillant.");
                else
                    printf("Oscillant. Période: %d ",periode);
                libere_grille(&gtest);
                libere_grille(&gmorte);
                break;
            }
			default : 
            { // touche non traitée
				printf("\n\e[1A");
				break;
			}
        }
		c = getchar(); 
	}
	return;	
}