diff --git a/grid.c b/grid.c index e1a4b5eaf00c166cf0b9cd2c0c030c5d5af9d599..e599ba3d8a642af568fb193d976878f8c8bb9354 100644 --- a/grid.c +++ b/grid.c @@ -1,6 +1,8 @@ #include <stdlib.h> #include <stdio.h> +#include <ncurses.h> #include "grid.h" +#include "player.h" grid *creer_grid(int row, int column) { @@ -69,6 +71,10 @@ grid *init_level(const char *file_path) while (*buffer && *buffer != '\n') { level->game_grid[current_row][current_column] = *buffer; + if (*buffer == '@') { + level->player.x = current_column; + level->player.y = current_row; + } current_column += 1; buffer += 1; @@ -79,3 +85,30 @@ grid *init_level(const char *file_path) fclose(file); return level; } + +void display_stdio(grid *G) { + for (int row = 0; row < G->row_number; row++) { + for (int column = 0; column < G->column_number; column++) { + printf("%c", G->game_grid[row][column]); + } + printf("\n"); + } +} + +void display_ncurses(grid *G) { + initscr(); + printw("Appuyez sur \"q\" pour quitter\n\n"); + for (int row = 0; row < G->row_number; row++) { + for (int column = 0; column < G->column_number; column++) { + printw("%c", G->game_grid[row][column]); + } + printw("\n"); + } + refresh(); + char quitCar = '\0'; + noecho(); + while (quitCar != 'q') { + quitCar = (char) getch(); + } + endwin(); +} diff --git a/grid.h b/grid.h index 86b14c4e7a645c55ccf3aec9812e9c98e4baa845..8f35be3f57ecffdeda70862ce8a35a1728991a4b 100644 --- a/grid.h +++ b/grid.h @@ -1,6 +1,8 @@ #ifndef GRID_HEADER #define GRID_HEADER +#include "player.h" + enum CaseType { WALL = '#', @@ -20,6 +22,7 @@ typedef struct Grid enum CaseType **game_grid; ///< Tableau contenant les entitÊs prÊsents dans le jeu int column_number; ///< Nombre de colonne de game_grid int row_number; ///< Nomber de ligne de game_grid + Player player; ///< Structure pour stocker la position du joueur } grid; grid *init_level(const char *file_path); @@ -28,4 +31,8 @@ grid *creer_grid(int row, int column); void free_grid(grid *G); +void display_stdio(grid *G); + +void display_ncurses(grid *G); + #endif diff --git a/player.h b/player.h new file mode 100644 index 0000000000000000000000000000000000000000..7a4dd4c0c57fe409d40fe8a9f85e5d6bbf50eb76 --- /dev/null +++ b/player.h @@ -0,0 +1,18 @@ +#ifndef PLAYER_HEADER +#define PLAYER_HEADER + +typedef struct player { + int x; + int y; +} Player; + +enum Direction { + LEFT = 'h', + BOTTOM = 'j', + TOP = 'k', + RIGHT = 'l' +}; + + + +#endif