Newer
Older
#include "grid.h"
#include <stdlib.h>
#include <stdio.h>
int coordonner_vers_indice(int x, int y, struct Grid* grid)
{
return((y * grid->column_number)+ x);
}
void init_level(const char* file_path){
// ouverture du fichier en mode lecture
FILE* file = fopen(file_path, "r");
if(!file){
fprintf(stderr, "Error %s not found", file_path);
exit(-1);
}
char line[100] = {0};
int number_column = 0; // nombre de colonne
int number_row = 0; /// nombre de ligne
int number_goals = 0;
// on lit la première ligne du fichier
fgets(line, 100, file);
sscanf(line, "%d %d %d", &number_column, &number_row, &number_goals);
int current_row = 0;
//int current_goal = 0;
// On lit le fichier ligne par ligne jusqu'à la fin du fichier
while(fgets(line, 100, file) != NULL){
char* buffer = line;
int current_column = 0;
while(*buffer && *buffer != '\n'){
current_column += 1;
}
current_row += 1;
}
// fermeture du fichier
fclose(file);
}
enum CaseType* initialisation_grid(int x, int y)
{
size_t taille_grid = x * y;
enum CaseType* new_grid = (enum CaseType*) malloc(taille_grid * sizeof(enum CaseType*));
for(size_t i = 0; i< taille_grid; i++)
{
new_grid[i] = NONE;
}
return new_grid;
}
struct Grid* grid_new(int x, int y)
{
struct Grid * new_strut_grid = NULL;
new_strut_grid = (struct Grid *) malloc(1 * sizeof(struct Grid *));
enum CaseType* new_grid = initialisation_grid(x, y);
new_strut_grid->column_number=x;
new_strut_grid->row_number= y;
new_strut_grid->game_grid = new_grid;
return new_strut_grid;
}
enum CaseType get_grid(struct Grid* grid, int x, int y)
{
if (0 <= x && x <grid->column_number && 0 <= y && y <grid->row_number )
{
return grid->game_grid[coordonner_vers_indice(x, y, grid)];
}
else{return -1;}