1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
| struct Ennemi* RecupInfoEnnemi(char *NomFic)
{
FILE *fp = fopen(NomFic,"r");
int NombreEnnemis;//nombre d'ennemis dont on va récupérer les infos
int i;
Ennemi *TableauEnnemi;//tableau d'ennemis (qui contient les info)
//déclarations nécessaires à la récupération des info du fichier
char *endChar;
char buffer[MAX_CHAR];
char *Repertoire;
if( (Repertoire = _getcwd( NULL, 0 )) == NULL )
perror( "erreur" );
if(NULL == fp)
{
printf("Erreur, impossible de trouver le fichier : %s\\%s\n",Repertoire,NomFic);
exit(-1);
}
//on récupère la première ligne qui contient les info du joueur (inutilisée ici)
fgets(buffer, MAX_CHAR, fp);
//la 2eme ligne contient le nombre d'ennemis
if(fgets(buffer, MAX_CHAR, fp)==NULL)
{
printf("Erreur, impossible de récupérer le nombre d'ennemis");
exit(-1);
}
NombreEnnemis = strtol(buffer, &endChar, 10);
printf("nb ennemi : %d\n",NombreEnnemis);//OK!!
TableauEnnemi = malloc(sizeof(Ennemi)*NombreEnnemis);
if(TableauEnnemi!=NULL) //allocation réussie
{
for(i=0;i<NombreEnnemis;i++)
{
TableauEnnemi[i].DernierTour = 0.0; //changer la valeur? voir avec traitements suivants... !!!!
TableauEnnemi[i].Etat = 1;
if(fgets(buffer, MAX_CHAR, fp)==NULL)
{
printf("Erreur, impossible de récupérer les infos de l'ennemi : %d",i+1);
exit(-1);
}
TableauEnnemi[i].TypeEnnemi = strtol(buffer, &endChar, 10);
TableauEnnemi[i].PositionX = strtol(endChar + 1, &endChar, 10);
TableauEnnemi[i].PositionY = strtol(endChar + 1, &endChar, 10);
printf("Type = %d , PosX = %d , PosY = %d\n",TableauEnnemi[i].TypeEnnemi,TableauEnnemi[i].PositionX,TableauEnnemi[i].PositionY );//OK !
}
fclose(fp);
return TableauEnnemi;
}
fclose(fp);
return NULL;
}struct Ennemi* RecupInfoEnnemi(char *NomFic)
{
FILE *fp = fopen(NomFic,"r");
int NombreEnnemis;//nombre d'ennemis dont on va récupérer les infos
int i;
Ennemi *TableauEnnemi;//tableau d'ennemis (qui contient les info)
//déclarations nécessaires à la récupération des info du fichier
char *endChar;
char buffer[MAX_CHAR];
char *Repertoire;
if( (Repertoire = _getcwd( NULL, 0 )) == NULL )
perror( "erreur" );
if(NULL == fp)
{
printf("Erreur, impossible de trouver le fichier : %s\\%s\n",Repertoire,NomFic);
exit(-1);
}
//on récupère la première ligne qui contient les info du joueur (inutilisée ici)
fgets(buffer, MAX_CHAR, fp);
//la 2eme ligne contient le nombre d'ennemis
if(fgets(buffer, MAX_CHAR, fp)==NULL)
{
printf("Erreur, impossible de récupérer le nombre d'ennemis");
exit(-1);
}
NombreEnnemis = strtol(buffer, &endChar, 10);
printf("nb ennemi : %d\n",NombreEnnemis);//OK!!
TableauEnnemi = malloc(sizeof(Ennemi)*NombreEnnemis);
if(TableauEnnemi!=NULL) //allocation réussie
{
for(i=0;i<NombreEnnemis;i++)
{
TableauEnnemi[i].DernierTour = 0.0; //changer la valeur? voir avec traitements suivants... !!!!
TableauEnnemi[i].Etat = 1;
if(fgets(buffer, MAX_CHAR, fp)==NULL)
{
printf("Erreur, impossible de récupérer les infos de l'ennemi : %d",i+1);
exit(-1);
}
TableauEnnemi[i].TypeEnnemi = strtol(buffer, &endChar, 10);
TableauEnnemi[i].PositionX = strtol(endChar + 1, &endChar, 10);
TableauEnnemi[i].PositionY = strtol(endChar + 1, &endChar, 10);
printf("Type = %d , PosX = %d , PosY = %d\n",TableauEnnemi[i].TypeEnnemi,TableauEnnemi[i].PositionX,TableauEnnemi[i].PositionY );//OK !
}
fclose(fp);
return TableauEnnemi;
}
fclose(fp);
return NULL;
} |