Cita de: engel lex en 21 Agosto 2015, 22:36 PM
Linea 52, tienes un return
Perdona, no se en que estaba pensando...
Muchísimas gracias por tu ayuda, marco como solucionado.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: engel lex en 21 Agosto 2015, 22:36 PM
Linea 52, tienes un return
Cita de: engel lex en 21 Agosto 2015, 21:04 PM
copio desde la linea 39, hablaré de los numeros de linea aquífor (x=0; x<subject_size; x++) {
if(buffer[x]=='=') break;
subject[x]=buffer[x];
}
for (x; x<file_line_size; x++) {
value[x]=buffer[x];
}
supongamos que en el fichero tieneshola=mundo
el for de la linea 1 empieza en 0 y avanza hasta conseguir '=' es decir hasta 5
así que subject quedaría en memoria|h|o|l|a|0|0|0|0|0|....
cuando llegas a la linea 6 tienes un for que no inicia, sino que continúa
value está limpio y sería a nivel de memoria algo como|0|0|0|0|0|0|0|0|0|....
cuando lo llenas, empiezas a llenarlo desde la posición que quedó el ciclo anterior (en nuestro caso 5), así que|0|0|0|0|0|m|u|n|d|o|0|0....
cuando lo vas a imprimir, printf no lee cadena en en value, ya que empieza con fin de cadena (ese 0 que muestro en el string) y no imprime nada
value tienes que escribirlo desde 0, así que puedes usar x como base para buffer, pero no para value
y=0;
for (x=x+1; x<file_line_size; x++) {
if(buffer[x]=='\n') break;
value[y]=buffer[x];
y++;
}
Cita de: engel lex en 21 Agosto 2015, 20:23 PM
recomiendo lo siguiente...
1- siempre que se cargue la librería y se le pase un archivo, lee todo el archivo
2- todos los valores obtenidos guardalos en un array bidimensional, siendo el primer valor el nombre y el segundo el contenido
3- recomiendo siempre borrar los espacios en los bordes (trim) ya que la gente podría hacer#comentario con espacio por delante
variable = valor con un espacio de sobre aqui ->
para esto podría ser util isspace de la librería ctype.h
por otro lado tu error está probablemenet en la linea 46 donde value empieza a popularse desde el medio y sin discriminación
campo1=valor1
campo2=valor2
#esto lo ignora, es solo un comentario
campo3=valor3
etc...
get_value("archivo.conf", "campo1", valor);
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int get_value(char [], char [], char []);
static void clear_array(char [], int);
int get_value(char file_conf[], char subject_i[], char value_i[]) {
FILE * file;
int file_line_size=50;
int subject_size=25;
int value_size=25;
char buffer[file_line_size];
char subject[subject_size];
char value[value_size];
file=fopen(file_conf, "r");
if (file==NULL) {
printf("Error al abrir el archivo\n");
return 1;
}
int x, y;
while (!feof(file))
{
clear_array(buffer, file_line_size);
clear_array(subject, subject_size);
clear_array(value, value_size);
fgets(buffer,file_line_size,file);
if (buffer[0]=='#') continue;
x=0;
for (x=0; x<subject_size; x++) {
if(buffer[x]=='=') break;
subject[x]=buffer[x];
}
for (x; x<file_line_size; x++) {
value[x]=buffer[x];
}
printf("el campo es %s\n", subject);
printf("el valor es %s\n", value);
if (strcmp(subject_i, subject)==0) { strcpy(value_i, value); return 0; }
}
printf("No existe el campo dentro del fichero\n");
return 1;
}
static void clear_array(char array[], int size) {
int x;
for(x=0;x<size;x++) {
array[x]='\0';
}
}
Cita de: ivancea96 en 18 Agosto 2015, 21:00 PM
En nombres de variables, no uses ningún caracter acentuado (ñ incluída). Solo caracteres alfanuméricos (sin empezar por número) y '_'.
pokemon.c: En la función 'main':
pokemon.c:31:8: aviso: declaración implícita de la función 'time' [-Wimplicit-function-declaration]
srand(time(NULL)+getpid());
^
pokemon.c:31:19: aviso: declaración implícita de la función 'getpid' [-Wimplicit-function-declaration]
srand(time(NULL)+getpid());
^
pokemon.c: En la función 'atacar':
pokemon.c:103:1: error: '\303' parásito en el programa
int ataque, daño;
^
pokemon.c:103:1: error: '\261' parásito en el programa
pokemon.c:103:17: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'o'
int ataque, daño;
^
pokemon.c:112:5: error: '\303' parásito en el programa
daño=azar(0, pokemon1.ataque[0]);
^
pokemon.c:112:5: error: '\261' parásito en el programa
pokemon.c:112:5: error: nombre de tipo 'da' desconocido
pokemon.c:112:19: aviso: el paso del argumento 2 de 'azar' crea un entero desde un puntero sin una conversión [-Wint-conversion]
daño=azar(0, pokemon1.ataque[0]);
^
pokemon.c:10:5: nota: se esperaba 'int' pero el argumento es de tipo 'char *'
int azar(int, int);
^
pokemon.c:115:5: error: '\303' parásito en el programa
printf("Le has quitado %d puntos de vida\n", daño);
^
pokemon.c:115:5: error: '\261' parásito en el programa
pokemon.c:115:50: error: 'da' no se declaró aquí (primer uso en esta función)
printf("Le has quitado %d puntos de vida\n", daño);
^
pokemon.c:115:50: nota: cada identificador sin declarar se reporta sólo una vez para cada función en el que aparece
pokemon.c:115:54: error: expected ')' before 'o'
printf("Le has quitado %d puntos de vida\n", daño);
^
pokemon.c:116:5: error: '\303' parásito en el programa
pokemon2.pv-=daño;
^
pokemon.c:116:5: error: '\261' parásito en el programa
pokemon.c:116:22: error: expected ';' before 'o'
pokemon2.pv-=daño;
^
pokemon.c:123:5: error: '\303' parásito en el programa
daño=azar(0, pokemon1.ataque[1]);
^
pokemon.c:123:5: error: '\261' parásito en el programa
pokemon.c:123:9: error: expected ';' before 'o'
daño=azar(0, pokemon1.ataque[1]);
^
pokemon.c:126:5: error: '\303' parásito en el programa
printf("Le has quitado %d puntos de vida\n", daño);
^
pokemon.c:126:5: error: '\261' parásito en el programa
pokemon.c:126:54: error: expected ')' before 'o'
printf("Le has quitado %d puntos de vida\n", daño);
^
pokemon.c:127:5: error: '\303' parásito en el programa
pokemon2.pv-=daño;
^
pokemon.c:127:5: error: '\261' parásito en el programa
pokemon.c:127:22: error: expected ';' before 'o'
pokemon2.pv-=daño;
^
pokemon.c:134:5: error: '\303' parásito en el programa
daño=azar(0, pokemon1.ataque[2]);
^
pokemon.c:134:5: error: '\261' parásito en el programa
pokemon.c:134:9: error: expected ';' before 'o'
daño=azar(0, pokemon1.ataque[2]);
^
pokemon.c:137:5: error: '\303' parásito en el programa
printf("Le has quitado %d puntos de vida\n", daño);
^
pokemon.c:137:5: error: '\261' parásito en el programa
pokemon.c:137:54: error: expected ')' before 'o'
printf("Le has quitado %d puntos de vida\n", daño);
^
pokemon.c:138:5: error: '\303' parásito en el programa
pokemon2.pv-=daño;
^
pokemon.c:138:5: error: '\261' parásito en el programa
pokemon.c:138:22: error: expected ';' before 'o'
pokemon2.pv-=daño;
^
pokemon.c:145:5: error: '\303' parásito en el programa
daño=azar(0, pokemon1.ataque[3]);
^
pokemon.c:145:5: error: '\261' parásito en el programa
pokemon.c:145:9: error: expected ';' before 'o'
daño=azar(0, pokemon1.ataque[3]);
^
pokemon.c:148:5: error: '\303' parásito en el programa
printf("Le has quitado %d puntos de vida\n", daño);
^
pokemon.c:148:5: error: '\261' parásito en el programa
pokemon.c:148:54: error: expected ')' before 'o'
printf("Le has quitado %d puntos de vida\n", daño);
^
pokemon.c:149:5: error: '\303' parásito en el programa
pokemon2.pv-=daño;
^
pokemon.c:149:5: error: '\261' parásito en el programa
pokemon.c:149:22: error: expected ';' before 'o'
pokemon2.pv-=daño;
^
pokemon.c:167:5: error: '\303' parásito en el programa
daño=azar(0, pokemon2.ataque[0]);
^
pokemon.c:167:5: error: '\261' parásito en el programa
pokemon.c:167:9: error: expected ';' before 'o'
daño=azar(0, pokemon2.ataque[0]);
^
pokemon.c:170:5: error: '\303' parásito en el programa
printf("Le has quitado %d puntos de vida\n", daño);
^
pokemon.c:170:5: error: '\261' parásito en el programa
pokemon.c:170:54: error: expected ')' before 'o'
printf("Le has quitado %d puntos de vida\n", daño);
^
pokemon.c:171:5: error: '\303' parásito en el programa
pokemon1.pv-=daño;
^
pokemon.c:171:5: error: '\261' parásito en el programa
pokemon.c:171:22: error: expected ';' before 'o'
pokemon1.pv-=daño;
^
pokemon.c:178:5: error: '\303' parásito en el programa
daño=azar(0, pokemon2.ataque[0]);
^
pokemon.c:178:5: error: '\261' parásito en el programa
pokemon.c:178:9: error: expected ';' before 'o'
daño=azar(0, pokemon2.ataque[0]);
^
pokemon.c:181:5: error: '\303' parásito en el programa
printf("Le has quitado %d puntos de vida\n", daño);
^
pokemon.c:181:5: error: '\261' parásito en el programa
pokemon.c:181:54: error: expected ')' before 'o'
printf("Le has quitado %d puntos de vida\n", daño);
^
pokemon.c:182:5: error: '\303' parásito en el programa
pokemon1.pv-=daño;
^
pokemon.c:182:5: error: '\261' parásito en el programa
pokemon.c:182:22: error: expected ';' before 'o'
pokemon1.pv-=daño;
^
pokemon.c:189:5: error: '\303' parásito en el programa
daño=azar(0, pokemon2.ataque[0]);
^
pokemon.c:189:5: error: '\261' parásito en el programa
pokemon.c:189:9: error: expected ';' before 'o'
daño=azar(0, pokemon2.ataque[0]);
^
pokemon.c:192:5: error: '\303' parásito en el programa
printf("Le has quitado %d puntos de vida\n", daño);
^
pokemon.c:192:5: error: '\261' parásito en el programa
pokemon.c:192:54: error: expected ')' before 'o'
printf("Le has quitado %d puntos de vida\n", daño);
^
pokemon.c:193:5: error: '\303' parásito en el programa
pokemon1.pv-=daño;
^
pokemon.c:193:5: error: '\261' parásito en el programa
pokemon.c:193:22: error: expected ';' before 'o'
pokemon1.pv-=daño;
^
pokemon.c:200:5: error: '\303' parásito en el programa
daño=azar(0, pokemon2.ataque[0]);
^
pokemon.c:200:5: error: '\261' parásito en el programa
pokemon.c:200:9: error: expected ';' before 'o'
daño=azar(0, pokemon2.ataque[0]);
^
pokemon.c:203:5: error: '\303' parásito en el programa
printf("Le has quitado %d puntos de vida\n", daño);
^
pokemon.c:203:5: error: '\261' parásito en el programa
pokemon.c:203:54: error: expected ')' before 'o'
printf("Le has quitado %d puntos de vida\n", daño);
^
pokemon.c:204:5: error: '\303' parásito en el programa
pokemon1.pv-=daño;
^
pokemon.c:204:5: error: '\261' parásito en el programa
pokemon.c:204:22: error: expected ';' before 'o'
pokemon1.pv-=daño;
^
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
void ayuda(void);
void atacar();
void pociones();
void informacion();
int azar(int, int);
void ganador();
typedef struct {
char nombre[25];
int pv;
char *ataque[4];
int pd[4];
int pp[4];
int pociones;
} pokemon;
pokemon pokemon1;
pokemon pokemon2;
int turno=1;
int main() {
srand(time(NULL)+getpid());
strcpy(pokemon1.nombre, "pokemon1");
pokemon1.pv=100;
pokemon1.ataque[0]="ataque1";pokemon1.ataque[1]="ataque2";pokemon1.ataque[2]="ataque3";pokemon1.ataque[3]="ataque4";
pokemon1.pd[0]=1;pokemon1.pd[1]=5;pokemon1.pd[2]=2;pokemon1.pd[3]=4;
pokemon1.pp[0]=20;pokemon1.pp[1]=30;pokemon1.pp[2]=10;pokemon1.pp[3]=40;
pokemon1.pociones=2;
strcpy(pokemon2.nombre, "pokemon2");
pokemon2.pv=100;
pokemon2.ataque[0]="ataque1";pokemon2.ataque[1]="ataque2";pokemon2.ataque[2]="ataque3";pokemon2.ataque[3]="ataque4";
pokemon1.pd[0]=4;pokemon1.pd[1]=3;pokemon1.pd[2]=8;pokemon1.pd[3]=2;
pokemon2.pp[0]=25;pokemon2.pp[1]=30;pokemon2.pp[2]=70;pokemon2.pp[3]=15;
pokemon2.pociones=3;
char comando;
informacion();
while (1) {
if (turno==1)
printf("[%s]", pokemon1.nombre);
else
printf("[%s]", pokemon2.nombre);
printf("Introduce la orden...");
comando = fgetc(stdin);
while(fgetc(stdin) != '\n');
switch ( comando ) {
case 'h':
ayuda();
break;;
case 'a':
atacar();
break;;
case 'p':
pociones();
break;;
case 'i':
informacion();
break;;
case 'e':
exit(0);
}
}
}
void ayuda() {
printf("h -> Despliega esta ayuda\n");
printf("a -> Ataca al pokemon enemigo\n");
printf("p -> Cura a tu pokemon si tienes pociones\n");
printf("i -> Da información sobre tu pokemon y el enemigo\n");
printf("e -> Cancelar la partida\n");
}
void atacar() {
int ataque, daño;
ataque = scanf("%d", &ataque);
if (turno==1) {
switch ( ataque ) {
case '1':
if (pokemon1.pp[0]==0){printf("no te quedan pp\n"); turno=2; break;;}
daño=azar(0, pokemon1.ataque[0]);
printf("%s uso %s", pokemon1.nombre, pokemon1.ataque[0]);
pokemon1.pp[0]--;
printf("Le has quitado %d puntos de vida\n", daño);
pokemon2.pv-=daño;
if (pokemon2.pv<=0)
ganador();
turno=2;
break;;
case '2':
if (pokemon1.pp[1]==0){printf("no te quedan pp\n"); turno=2; break;;}
daño=azar(0, pokemon1.ataque[1]);
printf("%s uso %s", pokemon1.nombre, pokemon1.ataque[1]);
pokemon1.pp[1]--;
printf("Le has quitado %d puntos de vida\n", daño);
pokemon2.pv-=daño;
if (pokemon2.pv<=0)
ganador();
turno=2;
break;;
case '3':
if (pokemon1.pp[2]==0){printf("no te quedan pp\n"); turno=2; break;;}
daño=azar(0, pokemon1.ataque[2]);
printf("%s uso %s", pokemon1.nombre, pokemon1.ataque[2]);
pokemon1.pp[2]--;
printf("Le has quitado %d puntos de vida\n", daño);
pokemon2.pv-=daño;
if (pokemon2.pv<=0)
ganador();
turno=2;
break;;
case '4':
if (pokemon1.pp[3]==0){printf("no te quedan pp\n"); turno=2; break;;}
daño=azar(0, pokemon1.ataque[3]);
printf("%s uso %s", pokemon1.nombre, pokemon1.ataque[3]);
pokemon1.pp[3]--;
printf("Le has quitado %d puntos de vida\n", daño);
pokemon2.pv-=daño;
if (pokemon2.pv<=0)
ganador();
turno=2;
break;;
default:
printf("no has elegido ninguna opcion, así que pierdes el turno\n");
turno=2;
break;;
}
}else{
switch ( ataque ) {
case '1':
if (pokemon2.pp[0]==0){printf("no te quedan pp\n"); turno=1; break;;}
daño=azar(0, pokemon2.ataque[0]);
printf("%s uso %s", pokemon2.nombre, pokemon2.ataque[0]);
pokemon2.pp[0]--;
printf("Le has quitado %d puntos de vida\n", daño);
pokemon1.pv-=daño;
if (pokemon1.pv<=0)
ganador();
turno=1;
break;;
case '2':
if (pokemon2.pp[1]==0){printf("no te quedan pp\n"); turno=1; break;;}
daño=azar(0, pokemon2.ataque[0]);
printf("%s uso %s", pokemon2.nombre, pokemon2.ataque[0]);
pokemon2.pp[1]--;
printf("Le has quitado %d puntos de vida\n", daño);
pokemon1.pv-=daño;
if (pokemon1.pv<=0)
ganador();
turno=1;
break;;
case '3':
if (pokemon2.pp[2]==0){printf("no te quedan pp\n"); turno=1; break;;}
daño=azar(0, pokemon2.ataque[0]);
printf("%s uso %s", pokemon2.nombre, pokemon2.ataque[0]);
pokemon2.pp[2]--;
printf("Le has quitado %d puntos de vida\n", daño);
pokemon1.pv-=daño;
if (pokemon1.pv<=0)
ganador();
turno=1;
break;;
case '4':
if (pokemon2.pp[3]==0){printf("no te quedan pp\n"); turno=1; break;;}
daño=azar(0, pokemon2.ataque[0]);
printf("%s uso %s", pokemon2.nombre, pokemon2.ataque[0]);
pokemon2.pp[3]--;
printf("Le has quitado %d puntos de vida\n", daño);
pokemon1.pv-=daño;
if (pokemon1.pv<=0)
ganador();
turno=1;
break;;
}
}
}
void pociones() {
printf("prueba");
}
void informacion() {
if (turno==1){
printf("**********\n");
printf("%s\n", pokemon1.nombre);
printf("pv:%d\n", pokemon1.pv);
printf("\t-----ATAQUES-----\n");
printf("\t%s pp:%d\n", pokemon1.ataque[0], pokemon1.pp[0]);
printf("\t%s pp:%d\n", pokemon1.ataque[1], pokemon1.pp[1]);
printf("\t%s pp:%d\n", pokemon1.ataque[2], pokemon1.pp[2]);
printf("\t%s pp:%d\n", pokemon1.ataque[3], pokemon1.pp[3]);
printf("Numero de pociones:%d\n", pokemon1.pociones);
printf("\t-----------------\n");
printf("pv enemigo:%d\n", pokemon2.pv);
printf("**********\n");
}
if (turno==2){
printf("**********\n");
printf("%s\n", pokemon2.nombre);
printf("pv:%d\n", pokemon2.pv);
printf("\t-----ATAQUES-----\n");
printf("\t%s pp:%d\n", pokemon2.ataque[0], pokemon1.pp[0]);
printf("\t%s pp:%d\n", pokemon2.ataque[1], pokemon1.pp[1]);
printf("\t%s pp:%d\n", pokemon2.ataque[2], pokemon1.pp[2]);
printf("\t%s pp:%d\n", pokemon2.ataque[3], pokemon1.pp[3]);
printf("Numero de pociones:%d\n", pokemon2.pociones);
printf("\t-----------------\n");
printf("pv enemigo:%d\n", pokemon1.pv);
printf("**********\n");
}
}
int azar(int minimo, int maximo){
srand(time(NULL));
return minimo+rand()%maximo+1;
}
void ganador() {
if (turno==1) {
printf("%s ha ganado la partida\n", pokemon1.nombre);
exit(0);
} else {
printf("%s ha ganado la partida\n", pokemon2.nombre);
exit(0);
}
}
Cita de: berni69 en 18 Agosto 2015, 17:45 PM
el while(1) origrinal está bien,
solo que después de leer un char necesitas terminar de leer la linea ya que cuando escribes en la consola realmente lo que ve el programa es:
"h\n" o "h\r\n" (depende de si es linux o windows)
para poder evitar que las siguientes lecturas de fgetc lean los otros caracteres que no te interesan puedes hacer un skip de ellos con el:
while(fgetc(stdin) != '\n');
por lo que el codigo te quedaría como:
printf("Introduce la orden...");
comando = fgetc(stdin);
while(fgetc(stdin) != '\n');
switch ( comando ) {
....
}
lo que estas haciendo en tu codigo es avanzar un turno por caracter hay en la linea hasta que lees '\n'
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void ayuda(void);
void atacar(int);
void pociones(int);
int main() {
typedef struct {
char nombre[25];
int pv;
char ataque[4][25];
int pd[8];
int pp[4];
} pokemon;
pokemon pokemon1;
pokemon pokemon2;
strcpy(pokemon1.nombre, "pokemon1");
pokemon1.pv=100;
pokemon1.ataque[0][0]="ataque1";pokemon1.ataque[1][0]="ataque2";pokemon1.ataque[2][0]="ataque3";pokemon1.ataque[3][0]="ataque4";
pokemon1.pd[0]=1;pokemon1.pd[1]=5;pokemon1.pd[2]=2;pokemon1.pd[3]=4;pokemon1.pd[4]=0;pokemon1.pd[5]=4;pokemon1.pd[6]=3;pokemon1.pd[7]=4;
pokemon1.pp[0]=20;pokemon1.pp[1]=30;pokemon1.pp[2]=10;pokemon1.pp[3]=40;
strcpy(pokemon2.nombre, "pokemon2");
pokemon2.pv=100;
pokemon2.ataque[0][0]="ataque1";pokemon2.ataque[1][0]="ataque2";pokemon2.ataque[2][0]="ataque3";pokemon2.ataque[3][0]="ataque4";
pokemon2.pd[0]=1;pokemon2.pd[1]=5;pokemon2.pd[2]=2;pokemon2.pd[3]=4;pokemon2.pd[4]=0;pokemon2.pd[5]=4;pokemon2.pd[6]=3;pokemon2.pd[7]=4;
pokemon1.pp[0]=25;pokemon1.pp[1]=30;pokemon1.pp[2]=70;pokemon1.pp[3]=15;
int turno=1;
char comando;
do {
if (turno==1)
printf("[%s]", pokemon1.nombre);
else
printf("[%s]", pokemon2.nombre);
printf("Introduce la orden...");
comando = fgetc(stdin);
switch ( comando ) {
case 'h':
ayuda();
break;;
case 'a':
atacar(turno);
break;;
case 'p':
pociones(turno);
break;;
}
} while(fgetc(stdin) != '\n');
}
void ayuda() {
printf("h -> Despliega esta ayuda\n");
printf("a -> Ataca al pokemon enemigo\n");
printf("p -> Cura a tu pokemon si tienes pociones\n");
}
void atacar(int turno) {
printf("prueba");
}
void pociones(int turno) {
printf("prueba");
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void ayuda(void);
void atacar(int);
void pociones(int);
int main() {
typedef struct {
char nombre[25];
int pv;
char **ataque;
int pd[8];
int pp[4];
} pokemon;
pokemon pokemon1;
pokemon pokemon2;
strcpy(pokemon1.nombre, "pokemon1");
pokemon1.pv=100;
pokemon1.ataque[0]="ataque1";pokemon1.ataque[1]="ataque2";pokemon1.ataque[2]="ataque3";pokemon1.ataque[3]="ataque4";
pokemon1.pd[0]=1;pokemon1.pd[1]=5;pokemon1.pd[2]=2;pokemon1.pd[3]=4;pokemon1.pd[4]=0;pokemon1.pd[5]=4;pokemon1.pd[6]=3;pokemon1.pd[7]=4;
pokemon1.pp[0]=20;pokemon1.pp[1]=30;pokemon1.pp[2]=10;pokemon1.pp[3]=40;
strcpy(pokemon2.nombre, "pokemon2");
pokemon2.pv=100;
pokemon2.ataque[0]="ataque1";pokemon2.ataque[1]="ataque2";pokemon2.ataque[2]="ataque3";pokemon2.ataque[3]="ataque4";
pokemon2.pd[0]=1;pokemon2.pd[1]=5;pokemon2.pd[2]=2;pokemon2.pd[3]=4;pokemon2.pd[4]=0;pokemon2.pd[5]=4;pokemon2.pd[6]=3;pokemon2.pd[7]=4;
pokemon1.pp[0]=25;pokemon1.pp[1]=30;pokemon1.pp[2]=70;pokemon1.pp[3]=15;
int turno=1;
char comando;
while (1) {
if (turno==1)
printf("[%s]", pokemon1.nombre);
else
printf("[%s]", pokemon2.nombre);
printf("Introduce la orden...");
scanf("&comando");
switch ( comando ) {
case 'h':
ayuda();
case 'a':
atacar(turno);
case 'p':
pociones(turno);
}
}
}
void ayuda() {
printf("h -> Despliega esta ayuda\n");
printf("a -> Ataca al pokemon enemigo\n");
printf("p -> Cura a tu pokemon si tienes pociones\n");
}
void atacar(int turno) {
printf("prueba");
}
void pociones(int turno) {
printf("prueba");
}