From 9afffc73a5a0e5798970c278384aebdb977b9e4d Mon Sep 17 00:00:00 2001 From: Romain Jegat <romain.jegat@insa-rennes.fr> Date: Sat, 23 Apr 2016 18:51:35 +0200 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20du=20programme=20de=20lectu?= =?UTF-8?q?re=20de=20cartes,=20d=C3=A9but=20d'initialisation=20de=20carte?= =?UTF-8?q?=20avec=20init=5Fjeu=20(non=20fonctionnel)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/Maps.txt | 130 +++++++++++++++++++++------------------------ src/carte.c | 63 +++++++++++++--------- src/carte.h | 2 + src/main.c | 20 +++++-- 4 files changed, 117 insertions(+), 98 deletions(-) diff --git a/resources/Maps.txt b/resources/Maps.txt index 79cb99b..9f3373d 100644 --- a/resources/Maps.txt +++ b/resources/Maps.txt @@ -1,78 +1,72 @@ -MAP1 10*16 +MAP1 6 8 -MFMMMFFPPF -PFFFFFFPPF -PFPPPFFPPF -PFPPPFFPPF -PFPPFFFPPF -PFMMMFFPPF -PFMFFFFPPF -PFMMPFFPPF -PFPPPFFPPF -PFPPFFPPFP -PFFPPFFPPF -PFFFMFFPPF -PFPMMFFPPF -PFMMMFFPPF -PFFFPFFPPF -PFPPPPFPPF +FFMMMF +FFMMMF +FFMMMF +FFMMMF +FFMMMF +FFMMMF +FFMMMF +FFMMMF -MAP2 10*16 +MAP2 5 4 -FFMMMFFPPF -PFFFFFFPPF -PFPPPFFPPF -PFPPPFFPPF -PFPPFFFPPF -PFMMMFFPPF -PFMFFFFPPF -PFMMPFFPPF -PFPPPFFPPF -PFPPFFPPFP -PFFPPFFPPF -PFFFMFFPPF -PFPMMFFPPF -PFMMMFFPPF -PFFFPFFPPF -PFPPPPFPPF +FFPPM +FFPPM +FFPPM +FFPPM -MAP3 10*16 +MAP3 6 10 -FFMMMFFPPF -PFFFFFFPPF -PFPPPFFPPF -PFPPPFFPPF -PFPPFFFPPF -PFMMMFFPPF -PFMFFFFPPF -PFMMPFFPPF -PFPPPFFPPF -PFPPFFPPFP -PFFPPFFPPF -PFFFMFFPPF -PFPMMFFPPF -PFMMMFFPPF -PFFFPFFPPF -PFPPPPFPPF +FFPFMP +FFPFMP +FFPFMP +FFPFMP +FFPFMP +FFPFMP +FFPFMP +FFPFMP +FFPFMP +FFPFMP -MAP4 10*16 +MAP4 16 10 -FFMMMFFPPF -PFFFFFFPPF -PFPPPFFPPF -PFPPPFFPPF -PFPPFFFPPF -PFMMMFFPPF -PFMFFFFPPF -PFMMPFFPPF -PFPPPFFPPF -PFPPFFPPFP -PFFPPFFPPF -PFFFMFFPPF -PFPMMFFPPF -PFMMMFFPPF -PFFFPFFPPF -PFPPPPFPPF \ No newline at end of file +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM + + +MAP5 16 10 + +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM +MPPFFPPPFM \ No newline at end of file diff --git a/src/carte.c b/src/carte.c index b72e5b8..377658d 100644 --- a/src/carte.c +++ b/src/carte.c @@ -10,6 +10,12 @@ */ +char* ExtraireCarte(int numero) +{ + return LireCarte("../resources/Maps.txt",numero); +} + + /*! * \fn Carte* LireCarte(int num) * \brief La fonction recupere la n-ieme carte dans un fichier et renvoie un pointeur sur la carte cree @@ -18,51 +24,58 @@ */ char* LireCarte(const char *filename, int num) { - char char_num_map[2],char_nb_lignes[2]="",char_nb_colonnes[2]=""; - int num_map = 0, nb_lignes = 0, nb_colonnes = 0, i=0, j=0, k=0; + char char_num_map[1],char_nb_lignes[2]="",char_nb_colonnes[2]=""; + char char_actuel; + int num_map = 0, nb_lignes = 0, nb_colonnes = 0, i=0, j=0, k=0, taille_Tableau = 0; FILE* file_map = NULL; file_map = fopen(filename, "r"); fseek(file_map, 3, SEEK_SET); - (fgets(char_num_map,3,file_map)); - num_map = atoi(char_num_map); - (fgets(char_nb_lignes,3,file_map)); - nb_lignes = atoi(char_nb_lignes); - fseek(file_map, 1, SEEK_CUR); - (fgets(char_nb_colonnes,3,file_map)); - nb_colonnes = atoi(char_nb_colonnes); - - while(num_map < num) + fscanf(file_map,"%d %d %d", &num_map, &nb_lignes, &nb_colonnes); /*! Lecture du nom et de la taille de la premiere map */ + + fgetc(file_map); + fgetc(file_map); + + while(num_map < num) /*! Descend jusqu'à la prochaine map */ { - for(k=0; k<nb_colonnes+4; k++) /*! Descend jusqu'à la prochaine map */ + for(k=0; k<nb_colonnes; k++) /*! Descend jusqu'à la prochaine map */ { - fseek(file_map,nb_lignes,SEEK_CUR); + fseek(file_map,nb_lignes+2,SEEK_CUR); } + fgetc(file_map); + fgetc(file_map); fseek(file_map, 3, SEEK_CUR); - (fgets(char_num_map,3,file_map)); - num_map = atoi(char_num_map); - (fgets(char_nb_lignes,3,file_map)); - nb_lignes = atoi(char_nb_lignes); - fseek(file_map, 1, SEEK_CUR); - (fgets(char_nb_colonnes,3,file_map)); - nb_colonnes = atoi(char_nb_colonnes); - } - fseek(file_map, 4, SEEK_CUR); + fscanf(file_map,"%d %d %d", &num_map, &nb_lignes, &nb_colonnes); /*! Lecture du nom et de la taille de la map */ + fgetc(file_map); + fgetc(file_map); + } char * TableauCarte = NULL; - TableauCarte = malloc(nb_colonnes * nb_lignes * sizeof(char)); + taille_Tableau = nb_colonnes*nb_lignes*sizeof(char); + TableauCarte = malloc(taille_Tableau); for(i=0; i<nb_colonnes; i++) { - for(j=0; j<=nb_lignes; j++) + for(j=0; j<nb_lignes; j++) { - TableauCarte[nb_lignes*i+j]=fgetc(file_map); + char_actuel = fgetc(file_map); + TableauCarte[nb_lignes*i+j] = char_actuel; } + fgetc(file_map); + } + +/* Test Tableau + + for(j=0; j<nb_lignes*nb_colonnes; j++) + { + printf("La valeur %d du tableau vaut : %c\n",j,TableauCarte[j]); } fclose(file_map); +*/ return TableauCarte; } + diff --git a/src/carte.h b/src/carte.h index bc58c4c..abbe315 100644 --- a/src/carte.h +++ b/src/carte.h @@ -3,6 +3,8 @@ * \brief Fichier contenant les signatures des fonctions liees a la structure carte. */ +char* ExtraireCarte(int numero); + char* LireCarte(const char *filename, int num); #ifndef CARTE_H_INCLUDED diff --git a/src/main.c b/src/main.c index e579fd1..7790bf7 100644 --- a/src/main.c +++ b/src/main.c @@ -10,7 +10,6 @@ int init_jeu(const char *filename){ /* crée les différents types de terrains, de classes et d'attaques en lisant dans un fichier */ FILE *fichier_init; - fichier_init=fopen(filename,"r"); if (!fichier_init==NULL) { @@ -45,6 +44,15 @@ int init_jeu(const char *filename){ /* cr strcat(fichier_text, fichier_temp); Librairie_Terrains(fichier_text); } + if(strcmp(nom,"Cartes")==0) + { + char fichier_text[50]; + char fichier_temp[50]; + strcpy(fichier_text,"../resources/"); + strcpy(fichier_temp,roxml_get_content(roxml_get_attr(config_actuelle, "fichier", 0), NULL, 0, NULL)); + strcat(fichier_text, fichier_temp); + char *Map_B = ExtraireCarte(2); + } if(strcmp(nom,"Competences")==0) { /* Initialisation des compétences à venir */ @@ -58,7 +66,7 @@ int init_jeu(const char *filename){ /* cr fprintf(stderr,"Erreur dans l'ouverture du fichier"); return 1; } - + return 0; } @@ -67,13 +75,15 @@ int init_jeu(const char *filename){ /* cr int main() { - init_jeu("../resources/Init_jeu.xml"); -main_SDL(); +char *Map_A = ExtraireCarte(4); -//printf("La case choisie est : %c\n",LireCarte("../resources/Maps.txt",3)[10]); +printf("La valeur choisie est : %c\n", Map_A[0]); + + +main_SDL(); -- GitLab