Me llamo Albert y soy estudiante de Ingeniería.
El caso es que tengo que hacer un programa pero no se porque, no me funciona del todo bien.
Se trata de un juego, en el que el usuario introduce el nombre del personaje que quiere cargar, el cual está guardado en un archivo que se llama igual que el personaje.
En este caso, el personaje se llama Albert.
El archivo contiene: nombre del personaje, clase, experiencia y nivel.
Cuando leo la clase, llamo a una función que identifica la clase dentro del array de clases y me muestra el ataque, defensa y vida de dicha clase.
Así pues, después de leer los datos de la clase, los asigno al personaje.
Una vez hecho esto, voy al menú de personaje donde podré empezar la "aventura".
El problema es que, cuando leo los datos de la clase, devuelvo un INT que me indica en que posición está.
Y a partir de ahí, no aparece nada por pantalla... ni el menú, ni el printf que pongo a continuación para ver si funciona.. nada.
¿Que debo hacer?
Aquí el código:
Código:
#include "total.h"
void carregaPersonatge(FILE *h, Classe *classes, int nClas,int nEnemics, Enemic *enemics){
Personatge personatge;
char strNom[50], strNomc[50], strOmet[100];
int nVida = 0, nAtac = 0, nExp = 0, nNivell = 0, nQuina = -1;
printf("Nom del personatge?: ");
scanf("%s",strNom);
h = fopen(strNom,"r"); //A PARTIR DE AQUI NO SALE NADA
printf("HOLA\n");
if( h == NULL){
printf("Error!\n");
menuPrincipal(nClas, nEnemics, classes, enemics);//En cas d'error, tornem al menu principal.
}
else{
printf("NICE\n");
fscanf(h,"%s",strOmet); //El nom del personatge ja el tenim d'abans.
printf("%s\n",strOmet); //BORRAR
fscanf(h,"%s", strNomc); //Llegim el nom de la classe
printf("%s\n",strNomc); //BORRAR
fscanf(h,"%d",&nNivell); //Llegim el nivell del personatge
fscanf(h,"%d",&nExp); //Llegim la experiencia del personatge
personatge.nExperiencia = nExp;
personatge.nNivell = nNivell;
strcpy(personatge.strNom, strNom);
printf("%d\n",personatge.nNivell);
printf("%d\n",personatge.nExperiencia);
nQuina = dadesClasse(strNomc,nClas,classes); //Trobem quina es la classe del personatge.
printf("%d\n",&nQuina); //BORRAR
personatge.nVida = classes[nQuina].nVida + nNivell*50;
personatge.nAtac = classes[nQuina].nAtac + nNivell*10;
personatge.nDefensa = classes[nQuina].nDefensa + nNivell*5;
strcpy(personatge.classe.strNom, classes[nQuina].strNom);
printf("%s\n",personatge.classe.strNom); //BORRAR
menuPersonatge(personatge, enemics, h, nEnemics, nClas, classes);
}
fclose(h);
}
int dadesClasse(char strNomc[50], int nClas, Classe *classes){
int i = 0;
int nReturn = -1;
while( i < nClas){
if(strcmp(classes[i].strNom, strNomc) == 0){
nReturn = i;
}
}
return nReturn;
}
¡Gracias de antemano!
Me dejé un i++ jajaja Ya está, gracias.