From 05b4732248c4c2763125f6c5b665f0e0f7a4c948 Mon Sep 17 00:00:00 2001 From: antoinemeyer5 <antoine.meyer54@gmail.com> Date: Tue, 21 Jun 2022 11:08:05 +0200 Subject: [PATCH] choix taille grille + chargement avec fichier texte --- travail_individuel/Meyer/jeu_de_la_vie/main | Bin 48320 -> 49472 bytes travail_individuel/Meyer/jeu_de_la_vie/main.c | 90 +++++++++++++----- .../Meyer/jeu_de_la_vie/niveau.txt | 21 ++++ 3 files changed, 85 insertions(+), 26 deletions(-) create mode 100644 travail_individuel/Meyer/jeu_de_la_vie/niveau.txt diff --git a/travail_individuel/Meyer/jeu_de_la_vie/main b/travail_individuel/Meyer/jeu_de_la_vie/main index a3a08e9dc2b069472ae0dc1d00ba9e63f1aba272..9d788b83eea634343d2d54fa14f7313603cc8abe 100755 GIT binary patch delta 18468 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 delta 15460 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 XTTJW|h1eh47i%5&s!17+?8N^cG~ui( diff --git a/travail_individuel/Meyer/jeu_de_la_vie/main.c b/travail_individuel/Meyer/jeu_de_la_vie/main.c index f6402fd..570395e 100644 --- a/travail_individuel/Meyer/jeu_de_la_vie/main.c +++ b/travail_individuel/Meyer/jeu_de_la_vie/main.c @@ -2,7 +2,6 @@ #include <stdlib.h> #include <SDL2/SDL.h> -#define TAILLE_MONDE_DELIMITE 20 #define TAILLE_TABLEAU_REGLES 9 int survie[TAILLE_TABLEAU_REGLES] = {0, 0, 1, 1, 0, 0, 0, 0, 0}; @@ -17,6 +16,8 @@ SDL_Event event; int running = 1; int tailleAffichage = 30; +int taille_monde_delimitee = 20; + void initSDL2(){ SDL_Init(SDL_INIT_VIDEO); @@ -54,23 +55,23 @@ void destroySDL2(){ SDL_Quit(); } -void initMonde(int monde[TAILLE_MONDE_DELIMITE][TAILLE_MONDE_DELIMITE]){ +void initMonde(int monde[taille_monde_delimitee][taille_monde_delimitee]){ int i = 0; int j = 0; - for(i=0; i<TAILLE_MONDE_DELIMITE; i++){ - for(j=0; j<TAILLE_MONDE_DELIMITE; j++){ + for(i=0; i<taille_monde_delimitee; i++){ + for(j=0; j<taille_monde_delimitee; j++){ monde[i][j] = 0; } } } -void afficheMonde(int monde[TAILLE_MONDE_DELIMITE][TAILLE_MONDE_DELIMITE]){ +void afficheMonde(int monde[taille_monde_delimitee][taille_monde_delimitee]){ int i = 0; int j = 0; - for(i=0; i<TAILLE_MONDE_DELIMITE; i++){ - for(j=0; j<TAILLE_MONDE_DELIMITE; j++){ + for(i=0; i<taille_monde_delimitee; i++){ + for(j=0; j<taille_monde_delimitee; j++){ switch(monde[i][j]){ case 0: SDL_SetRenderDrawColor(renderer, 255, 255, 255, 0); @@ -91,7 +92,7 @@ void afficheMonde(int monde[TAILLE_MONDE_DELIMITE][TAILLE_MONDE_DELIMITE]){ } } -void afficherEcran(int monde[TAILLE_MONDE_DELIMITE][TAILLE_MONDE_DELIMITE]){ +void afficherEcran(int monde[taille_monde_delimitee][taille_monde_delimitee]){ SDL_SetRenderDrawColor(renderer, 0, 16, 158, 0); SDL_RenderClear(renderer); @@ -101,7 +102,7 @@ void afficherEcran(int monde[TAILLE_MONDE_DELIMITE][TAILLE_MONDE_DELIMITE]){ SDL_RenderPresent(renderer); } -void changeCellule(int monde[TAILLE_MONDE_DELIMITE][TAILLE_MONDE_DELIMITE], int clic_x, int clic_y){ +void changeCellule(int monde[taille_monde_delimitee][taille_monde_delimitee], int clic_x, int clic_y){ int ligne = clic_y/tailleAffichage; int colonne = clic_x/tailleAffichage; if(0 == monde[colonne][ligne]){ @@ -111,23 +112,23 @@ void changeCellule(int monde[TAILLE_MONDE_DELIMITE][TAILLE_MONDE_DELIMITE], int } } -int nombreVoisinsVivants(int monde[TAILLE_MONDE_DELIMITE][TAILLE_MONDE_DELIMITE], int cel_x, int cel_y){ +int nombreVoisinsVivants(int monde[taille_monde_delimitee][taille_monde_delimitee], int cel_x, int cel_y){ int nbrVoisinsVivants = 0; if(cel_x==0 && cel_y==0){ nbrVoisinsVivants = monde[cel_x+1][cel_y] + monde[cel_x][cel_y+1] + monde[cel_x+1][cel_y+1]; - } else if(cel_x==0 && cel_y==TAILLE_MONDE_DELIMITE-1){ + } else if(cel_x==0 && cel_y==taille_monde_delimitee-1){ nbrVoisinsVivants = monde[cel_x+1][cel_y] + monde[cel_x][cel_y-1] + monde[cel_x+1][cel_y-1]; - }else if(cel_x==TAILLE_MONDE_DELIMITE-1 && cel_y==0 ){ + }else if(cel_x==taille_monde_delimitee-1 && cel_y==0 ){ nbrVoisinsVivants = monde[cel_x-1][cel_y] + monde[cel_x][cel_y+1] + monde[cel_x-1][cel_y+1]; - }else if(cel_x==TAILLE_MONDE_DELIMITE-1 && cel_y==TAILLE_MONDE_DELIMITE-1){ + }else if(cel_x==taille_monde_delimitee-1 && cel_y==taille_monde_delimitee-1){ nbrVoisinsVivants = monde[cel_x-1][cel_y] + monde[cel_x][cel_y-1] + monde[cel_x-1][cel_y-1]; }else if(cel_x==0){ nbrVoisinsVivants = monde[cel_x][cel_y-1] + monde[cel_x+1][cel_y-1] + monde[cel_x+1][cel_y] + monde[cel_x+1][cel_y+1] + monde[cel_x][cel_y+1]; - }else if(cel_x==TAILLE_MONDE_DELIMITE-1){ + }else if(cel_x==taille_monde_delimitee-1){ nbrVoisinsVivants = monde[cel_x][cel_y-1] + monde[cel_x-1][cel_y-1] + monde[cel_x-1][cel_y] + monde[cel_x-1][cel_y+1] + monde[cel_x][cel_y+1]; }else if(cel_y==0){ nbrVoisinsVivants = monde[cel_x-1][cel_y] + monde[cel_x-1][cel_y+1] + monde[cel_x][cel_y+1] + monde[cel_x+1][cel_y+1] + monde[cel_x+1][cel_y]; - }else if(cel_y==TAILLE_MONDE_DELIMITE-1){ + }else if(cel_y==taille_monde_delimitee-1){ nbrVoisinsVivants = monde[cel_x-1][cel_y] + monde[cel_x-1][cel_y-1] + monde[cel_x][cel_y-1] + monde[cel_x+1][cel_y-1] + monde[cel_x+1][cel_y]; }else{ nbrVoisinsVivants = monde[cel_x-1][cel_y-1] + monde[cel_x][cel_y-1] + monde[cel_x+1][cel_y-1] + monde[cel_x+1][cel_y] + @@ -136,15 +137,21 @@ int nombreVoisinsVivants(int monde[TAILLE_MONDE_DELIMITE][TAILLE_MONDE_DELIMITE] return nbrVoisinsVivants; } -void reglesEvolutions(int monde[TAILLE_MONDE_DELIMITE][TAILLE_MONDE_DELIMITE]){ +void reglesEvolutions(int monde[taille_monde_delimitee][taille_monde_delimitee]){ int i = 0; int j = 0; - int mondeSuivant[TAILLE_MONDE_DELIMITE][TAILLE_MONDE_DELIMITE] = {0}; + int mondeSuivant[taille_monde_delimitee][taille_monde_delimitee]; + + for(i=0; i<taille_monde_delimitee; i++){ + for(j=0; j<taille_monde_delimitee; j++){ + mondeSuivant[i][j] = 0; + } + } int nbrVoisinsVivants = 0; - for(i=0; i<TAILLE_MONDE_DELIMITE; i++){ - for(j=0; j<TAILLE_MONDE_DELIMITE; j++){ + for(i=0; i<taille_monde_delimitee; i++){ + for(j=0; j<taille_monde_delimitee; j++){ nbrVoisinsVivants = nombreVoisinsVivants(monde, i, j); if(monde[i][j]==1 && survie[nbrVoisinsVivants]==0){ mondeSuivant[i][j] = 0; @@ -156,18 +163,48 @@ void reglesEvolutions(int monde[TAILLE_MONDE_DELIMITE][TAILLE_MONDE_DELIMITE]){ } } - for(i=0; i<TAILLE_MONDE_DELIMITE; i++){ - for(j=0; j<TAILLE_MONDE_DELIMITE; j++){ + for(i=0; i<taille_monde_delimitee; i++){ + for(j=0; j<taille_monde_delimitee; j++){ monde[i][j] = mondeSuivant[i][j]; } } +} - +void chargeNiveauFichier(char *nom_fichier, int monde[taille_monde_delimitee][taille_monde_delimitee]){ + FILE *fichier = NULL; + int valeur; + int ligne = -1; + int colonne = 0; + fichier = fopen(nom_fichier, "r"); + if(fichier != NULL){ + while(fscanf(fichier, "%d", &valeur) != EOF){ + if(ligne == -1){ + taille_monde_delimitee = valeur; + ligne = 0; + }else{ + monde[colonne][ligne] = valeur; + colonne = colonne + 1; + if(colonne==taille_monde_delimitee){ + ligne = ligne + 1; + colonne = 0; + if(ligne==taille_monde_delimitee){ + break; + } + } + } + printf("%d (%d, %d)\n", valeur, ligne, colonne); + } + } + fclose(fichier); } -int main() { +int main(int argc, char** argv) { + + if(argc == 2){ + taille_monde_delimitee = atoi(argv[1]); + } - int monde[TAILLE_MONDE_DELIMITE][TAILLE_MONDE_DELIMITE]; + int monde[taille_monde_delimitee][taille_monde_delimitee]; initSDL2(); @@ -199,8 +236,9 @@ int main() { printf("goo calcul!\n"); reglesEvolutions(monde); break; - case SDLK_s: - printf("stop calcul...\n"); + case SDLK_c: + printf("charge niveau.txt...\n"); + chargeNiveauFichier("niveau.txt", monde); break; default: printf("une touche est tapee\n"); diff --git a/travail_individuel/Meyer/jeu_de_la_vie/niveau.txt b/travail_individuel/Meyer/jeu_de_la_vie/niveau.txt new file mode 100644 index 0000000..2abba44 --- /dev/null +++ b/travail_individuel/Meyer/jeu_de_la_vie/niveau.txt @@ -0,0 +1,21 @@ +20 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 +0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \ No newline at end of file -- GitLab