diff --git a/travail_individuel/Belkhiri/GameOfLife/map.txt b/travail_individuel/Belkhiri/GameOfLife/map.txt index 5858bfb8de8f758990b661cf90de8f3e8d0e4d62..461edd9ede9574c368e0a332b974a7cc4411ffe4 100644 --- a/travail_individuel/Belkhiri/GameOfLife/map.txt +++ b/travail_individuel/Belkhiri/GameOfLife/map.txt @@ -1,20 +1,5 @@ -0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 -0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 -0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 -0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 -0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 -0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 -0 0 0 0 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 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 1 0 0 0 0 0 0 0 0 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 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 +0 0 0 0 0 +0 1 0 1 0 +0 0 0 0 0 +0 0 0 0 0 diff --git a/travail_individuel/Belkhiri/GameOfLife/run b/travail_individuel/Belkhiri/GameOfLife/run new file mode 100755 index 0000000000000000000000000000000000000000..b4c3dc621abb0fa478779fdf9a4734e610cf775a Binary files /dev/null and b/travail_individuel/Belkhiri/GameOfLife/run differ diff --git a/travail_individuel/Belkhiri/GameOfLife/src/gest_event.c b/travail_individuel/Belkhiri/GameOfLife/src/gest_event.c index a56b164917fbaec04ab02e89c3c1590a31197f91..5d338db0490c37ee59c40a0469d30081d51e534b 100644 --- a/travail_individuel/Belkhiri/GameOfLife/src/gest_event.c +++ b/travail_individuel/Belkhiri/GameOfLife/src/gest_event.c @@ -10,15 +10,24 @@ void gestMenu(){ running = 0; break; - case SDL_KEYUP: + case SDL_KEYDOWN: switch (event.key.keysym.sym) { case SDLK_x: running = 0; continue; + + case SDLK_UP: + MAPSIZE++; + continue; + + case SDLK_DOWN: + MAPSIZE--; + continue; default: game_state = GAME; + initMap(); continue; } break; @@ -51,7 +60,7 @@ void gestGame(){ continue; case SDLK_s: - writeMap(map, "map.txt"); + writeMap("map.txt"); printf("Saved map to map.txt\n"); default: diff --git a/travail_individuel/Belkhiri/GameOfLife/src/main.c b/travail_individuel/Belkhiri/GameOfLife/src/main.c index 967862f6bd5cd0179ee1ce3294ebd002f7a87617..8c8553a1a206661f247725e56df879225b011864 100644 --- a/travail_individuel/Belkhiri/GameOfLife/src/main.c +++ b/travail_individuel/Belkhiri/GameOfLife/src/main.c @@ -7,7 +7,6 @@ int game_state; int main(){ running = 1; game_state = MENU; - initMap(map); MainLoop(); diff --git a/travail_individuel/Belkhiri/GameOfLife/src/map.c b/travail_individuel/Belkhiri/GameOfLife/src/map.c index 30a49ee806d1e71c952d8fffb9f1408ab6b8ccca..025044668b687dd7ac5589e31b6c4e8d0d862d3f 100644 --- a/travail_individuel/Belkhiri/GameOfLife/src/map.c +++ b/travail_individuel/Belkhiri/GameOfLife/src/map.c @@ -1,10 +1,19 @@ #include "map.h" +int MAPSIZE = 20; -int map[MAPSIZE][MAPSIZE]; +int ** map; + +void allocateMap(){ + map = malloc(MAPSIZE * sizeof(int*)); + for(int i = 0; i < MAPSIZE; i++){ + map[i] = malloc(MAPSIZE * sizeof(int)); + } +} -void initMap(int map[MAPSIZE][MAPSIZE]) { +void initMap() { + allocateMap(); for(int i = 0; i < MAPSIZE; i++){ for(int j = 0; j < MAPSIZE; j++){ map[i][j] = 0; @@ -13,7 +22,7 @@ void initMap(int map[MAPSIZE][MAPSIZE]) { } -void printMap(int map[MAPSIZE][MAPSIZE]){ +void printMap(){ for(int i = 0; i < MAPSIZE; i++){ for(int j = 0; j < MAPSIZE; j++){ printf("%d ", map[i][j]); @@ -23,7 +32,7 @@ void printMap(int map[MAPSIZE][MAPSIZE]){ } -void writeMap(int map[MAPSIZE][MAPSIZE], char* filename){ +void writeMap(char* filename){ FILE* f = fopen(filename, "w"); for(int i = 0; i < MAPSIZE; i++){ for(int j = 0; j < MAPSIZE; j++){ diff --git a/travail_individuel/Belkhiri/GameOfLife/src/map.h b/travail_individuel/Belkhiri/GameOfLife/src/map.h index b50040c93b8fa9ebed34986df1a5eaae64590376..6ba8681921611b88e47f1962c8626c306636b5de 100644 --- a/travail_individuel/Belkhiri/GameOfLife/src/map.h +++ b/travail_individuel/Belkhiri/GameOfLife/src/map.h @@ -3,11 +3,11 @@ #include "main.h" -#define MAPSIZE 20 -extern int map[MAPSIZE][MAPSIZE]; +extern int MAPSIZE; +extern int ** map; -void printMap(int map[MAPSIZE][MAPSIZE]); -void initMap(int map[MAPSIZE][MAPSIZE]); -void writeMap(int map[MAPSIZE][MAPSIZE], char* filename); +void printMap(); +void initMap(); +void writeMap(char* filename); #endif \ No newline at end of file diff --git a/travail_individuel/Belkhiri/GameOfLife/src/render.c b/travail_individuel/Belkhiri/GameOfLife/src/render.c index 4d5a88bdebd808d7a50f416ee27a81154e8efb0c..8ca7d3d14e9534a736200c0471ccf650b7ac312f 100644 --- a/travail_individuel/Belkhiri/GameOfLife/src/render.c +++ b/travail_individuel/Belkhiri/GameOfLife/src/render.c @@ -18,6 +18,7 @@ SDL_Surface * columnSurface = NULL; SDL_Texture * backgroundTexture = NULL; SDL_Surface * backgroundSurface = NULL; + void CreateWindow(){ if (SDL_Init(SDL_INIT_VIDEO) != 0){ @@ -78,16 +79,31 @@ void drawPlayButton(){ SDL_RenderCopy(renderer, playButtonTexture, NULL, &playButtonRect); } +void drawMAPSIZE(){ + char str[10]; + sprintf(str, "%d", MAPSIZE); + SDL_Color textColor = {0, 0, 0}; + SDL_Surface * surface = TTF_RenderText_Solid(RobotoFont, str, textColor); + SDL_Texture * texture = SDL_CreateTextureFromSurface(renderer, surface); + + int titleWidth, titleHeight; + SDL_QueryTexture(texture, NULL, NULL, &titleWidth, &titleHeight); + + SDL_Rect titleRect = {ScreenDimension.w/2 - titleWidth/2, ScreenDimension.h/1.2 - titleHeight, titleWidth, titleHeight}; + SDL_RenderCopy(renderer, texture, NULL, &titleRect); +} + void drawMenu(){ SDL_RenderClear(renderer); drawBackground(); drawTitle(); drawPlayButton(); + drawMAPSIZE(); SDL_RenderPresent(renderer); } -void drawMap(int map[MAPSIZE][MAPSIZE]){ +void drawMap(){ int x_offset = ScreenDimension.w/2 - MAPSIZE*CELLSIZE/2; for(int i = 0; i < MAPSIZE; i++){ for(int j = 0; j < MAPSIZE; j++){ @@ -114,7 +130,7 @@ void drawGame(){ SDL_RenderClear(renderer); drawBackground(); drawBackground2(); - drawMap(map); + drawMap(); drawColumns(); SDL_RenderPresent(renderer); }