#include <stdlib.h> #include <stdio.h> #include <SDL2/SDL.h> #include "map.h" #include "render.h" int main (int argc, char **argv) { if (argc=! 2){ printf("trop/peu d'argument \n"); exit(0); } SDL_Window *window_1 = NULL; SDL_Renderer *renderer = NULL; SDL_bool program_on= SDL_TRUE; int dimension_grille= atoi(argv[1]); int regles_naissances [9]={0,0,0,1,0,0,0,0,0}; int regles_survie [9]={0,0,1,1,0,0,0,0,0}; int **grille; int i; init_sdl(window_1,renderer,dimension_grille); grille = malloc(dimension_grille*sizeof(int)); if (grille==NULL){ fin_sdl(renderer,window_1); printf("erreur alloc\n"); exit(0); } else{ for (i=0;i<dimension_grille; i++){ grille[i]=malloc(dimension_grille*sizeof(int)); if (grille[i]==NULL){ fin_sdl(renderer,window_1); liberer_grille(grille,i-1); printf("erreur alloc\n"); exit(0); } } } int ** nouvelle_grille; nouvelle_grille = malloc(dimension_grille*sizeof(int)); if (nouvelle_grille==NULL){ fin_sdl(renderer,window_1); printf("erreur alloc\n"); exit(0); } else{ for (i=0;i<dimension_grille; i++){ nouvelle_grille[i]=malloc(dimension_grille*sizeof(int)); if (nouvelle_grille[i]==NULL){ fin_sdl(renderer,window_1); liberer_grille(nouvelle_grille,i-1); printf("erreur alloc\n"); exit(1); } } } SDL_Event event; while (program_on) { /// boucle d'event if(SDL_PollEvent(&event)) { switch (event.type) { case SDL_QUIT: program_on=SDL_FALSE; break; case SDL_MOUSEBUTTONDOWN: printf("Appui :%d %d\n", event.button.x, event.button.y); changer_case(grille, event.button.x, event.button.y,dimension_grille); break; case SDL_KEYDOWN: switch(event.key.keysym.sym){ case SDLK_RIGHT: printf("goo calcul!\n"); iteration_suivante(grille,nouvelle_grille,regles_naissances,regles_survie,dimension_grille); break; default: printf("une touche est tapee\n"); break; } break; case SDL_WINDOWEVENT_CLOSE: printf("appui sur la croix\n"); break; } } dessiner_grille(renderer,grille, dimension_grille); SDL_RenderPresent(renderer); SDL_Delay(20); } liberer_grille(grille, dimension_grille); liberer_grille(nouvelle_grille,dimension_grille); fin_sdl(renderer,window_1); return 0; }