Skip to content
Snippets Groups Projects
Commit 24cddfa0 authored by maberet's avatar maberet
Browse files

Modification jeu de la vie Marc : résolution seg fault

parent 0be3e93a
No related branches found
No related tags found
No related merge requests found
File deleted
......@@ -4,6 +4,8 @@
#include "map.h"
#include "render.h"
int main (int argc, char **argv) {
if (argc=! 2){
......@@ -18,12 +20,16 @@ int main (int argc, char **argv) {
program_on= SDL_TRUE;
int dimension_grille= atoi(argv[1]);
int dimension_tableau=600-600%dimension_grille;
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 **grille=NULL;
int i;
int taille_max=20;
init_sdl(window_1,renderer,dimension_grille);
init_sdl(window_1,renderer,dimension_tableau);
grille = malloc(dimension_grille*sizeof(int));
if (grille==NULL){
......@@ -43,7 +49,7 @@ int main (int argc, char **argv) {
}
}
int ** nouvelle_grille;
int ** nouvelle_grille=NULL;
nouvelle_grille = malloc(dimension_grille*sizeof(int));
if (nouvelle_grille==NULL){
......@@ -58,15 +64,20 @@ int main (int argc, char **argv) {
fin_sdl(renderer,window_1);
liberer_grille(nouvelle_grille,i-1);
printf("erreur alloc\n");
exit(1);
exit(0);
}
}
}
init_grille(grille,dimension_grille);
printf("dim%d\n",grille[20][20]);
SDL_Event event;
while (program_on) { /// boucle d'event
if(SDL_PollEvent(&event)) {
dessiner_grille(renderer,grille, dimension_grille,dimension_tableau);
SDL_RenderPresent(renderer);
while (program_on) { // boucle d'event
while(SDL_PollEvent(&event)) {
switch (event.type) {
case SDL_QUIT:
......@@ -92,11 +103,11 @@ int main (int argc, char **argv) {
break;
}
}
dessiner_grille(renderer,grille, dimension_grille);
dessiner_grille(renderer,grille, dimension_grille,dimension_tableau);
SDL_RenderPresent(renderer);
SDL_Delay(20);
}
SDL_Delay(100);
}
liberer_grille(grille, dimension_grille);
......
#include "map.h"
int quelleTaillePourLesCases(int divise, int diviseur){
int r;
r = divise/diviseur;
return r;
}
int nombrevoisin(int **grille,int i , int j,int w){
int cpt=0;
if (grille[(i-1)%w][(j-1)%w]==1){cpt++;}
if (grille[(i)%w][(j-1)%w]==1){cpt++;}
if (grille[(i+1)%w][(j-1)%w]==1){cpt++;}
if (grille[(w+i-1)%w][(w+j-1)%w]==1){cpt++;}
if (grille[(i)%w][(w+j-1)%w]==1){cpt++;}
if (grille[(i+1)%w][(w+j-1)%w]==1){cpt++;}
if (grille[(i+1)%w][(j)%w]==1){cpt++;}
if (grille[(i-1)%w][(j)%w]==1){cpt++;}
if (grille[(i-1)%w][(j+1)%w]==1){cpt++;}
if (grille[(w+i-1)%w][(j)%w]==1){cpt++;}
if (grille[(w+i-1)%w][(j+1)%w]==1){cpt++;}
if (grille[(i)%w][(j+1)%w]==1){cpt++;}
if (grille[(i+1)%w][(j+1)%w]==1){cpt++;}
if (grille[(w+i+1)%w][(j+1)%w]==1){cpt++;}
return (cpt);
}
......@@ -25,6 +31,17 @@ void liberer_grille(int ** grille,int taille){
}
void init_grille( int **grille, int taille){
int i;
int j;
printf("taille%d\n",taille);
for (i=0;i<taille;i++){
for (j=0;j<taille;j++){
grille[i][j]=0;
}
}
}
void iteration_suivante(int **grille, int **nouvelle_grille ,int *regles_survie, int *regles_naissances, int taille){
int i;
int j;
......@@ -48,12 +65,12 @@ void iteration_suivante(int **grille, int **nouvelle_grille ,int *regles_survie,
void changer_case(int **grille,int i,int j,int taille){
if (grille[i%taille][j%taille]==0){
grille[i%taille][j%taille]=1;
printf("%d\n",grille[i][j]);
if (grille[i*taille][j/taille]==0){
grille[i/taille][j/taille]=1;
}
else {
grille[i%taille][j%taille]=0;
grille[i/taille][j/taille]=0;
}
}
......@@ -12,6 +12,7 @@
int nombrevoisin(int **grille,int i , int j,int w);
void liberer_grille(int **grille,int taille);
void init_grille( int **grille, int taille);
void iteration_suivante(int **grille,int **nouvelle_grille, int *regles_mort, int *regles_naissances, int taille);
void changer_case(int **grille,int i,int j,int taille);
#endif
\ No newline at end of file
#include "render.h"
void init_sdl(SDL_Window *window_1,SDL_Renderer *renderer,int dimension_grille){
void init_sdl(SDL_Window *window_1,SDL_Renderer *renderer,int dimension_tableau){
if (SDL_Init(SDL_INIT_VIDEO) != 0) {
SDL_Log("Error : SDL initialisation - %s\n",
......@@ -9,9 +9,9 @@ void init_sdl(SDL_Window *window_1,SDL_Renderer *renderer,int dimension_grille){
window_1 = SDL_CreateWindow("Jeu de la vie",
SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED, 10*dimension_grille,
10*dimension_grille,
SDL_WINDOW_OPENGL);
SDL_WINDOWPOS_CENTERED, dimension_tableau,
dimension_tableau,
SDL_WINDOW_RESIZABLE);
if (window_1 == NULL) {
SDL_Log("Error : SDL window 1 creation - %s\n",
......@@ -29,15 +29,20 @@ void init_sdl(SDL_Window *window_1,SDL_Renderer *renderer,int dimension_grille){
}
void dessiner_grille(SDL_Renderer* renderer, int **grille,int taille){
void dessiner_grille(SDL_Renderer* renderer, int **grille,int taille, int taille_fen){
int i;
int j;
int taille_case= taille_fen/taille;
SDL_RenderClear(renderer);
for (i=0;i<taille;i++){
for(j=0;j<taille;j++){
SDL_Rect rectangle= {10*i,10*j,10,10};
SDL_Rect rectangle;
rectangle.x = quelleTaillePourLesCases(width, taille_monde_delimitee)*i;
rectangle.y = quelleTaillePourLesCases(height, taille_monde_delimitee)*j;
rectangle.w = quelleTaillePourLesCases(width, taille_monde_delimitee)-2;
rectangle.h = quelleTaillePourLesCases(height, taille_monde_delimitee)-2;
if (grille [i][j]==1){
SDL_SetRenderDrawColor(renderer,
......@@ -53,6 +58,7 @@ void dessiner_grille(SDL_Renderer* renderer, int **grille,int taille){
}
}
}
SDL_RenderPresent(renderer);
}
void fin_sdl(SDL_Renderer* renderer,SDL_Window *window_1){
......
......@@ -7,6 +7,6 @@
#include <SDL2/SDL.h>
void init_sdl(SDL_Window *window_1 ,SDL_Renderer *renderer,int dimension_grille);
void dessiner_grille(SDL_Renderer* renderer, int ** grille, int taille);
void dessiner_grille(SDL_Renderer* renderer, int ** grille, int taille,int taille_fen);
void fin_sdl(SDL_Renderer* renderer,SDL_Window *window_1);
#endif
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment