Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #include<time.h>
- void MostrarPokemon(int n);
- //QUEREMOS INCLUIR 4 ATAQUES A CADA UNO DE NUESTROS POKEMONES, LUEGO IMPRIMIRLOS AL ELEGIR AL POKEMON QUERIDO
- typedef struct habilidades{//La estructura de los ataques
- char nombre_habilidad[40];
- char tipo_habilidad[15];
- int danio;
- int PP;
- char efecto[15];
- int prob_efect;
- }s_ataques;
- //Definimos una estructura llamada pokemon
- typedef struct pokemon{
- char nombre[15];//1
- char tipo[15];//2
- int vida;//3
- char estado[15];
- int num_habilidades;
- s_ataques ataque_pokemon[4];//4
- }s_pokemon;
- s_pokemon lista[10]; //Definimos una estructura type pokemon que sea una lista de n(10 en este caso) pokemon, PODEMOS AUMENTAR EL NUMERO DE POKEMONES QUE QUEREMOS
- s_pokemon lista[10]={{"Pikachu","Electrico",300,"0",4,
- "Golpe","Normal",40,10,"0",0,
- "Impactrueno","Electrico",50,5,"0",0,
- "Latigo","Normal",40,1,"Confusion",20,
- "Trueno","Electrico",70,5,"Paralisis",30},
- {"Blastoise","Agua",120,"0",4,
- "Cabezaso","Normal",60,5,"0",0,
- "Hidropulso","Agua",80,5,"0",0,
- "Placaje","Normal",40,10,"0",0,
- "Giro rapido","Normal",50,5,"0",0,},
- {"Charizard","Fuego",500,"0",4,
- "Furia dragon","Dragon",60,5,"0",0,
- "Giro Fuego","Fuego",40,10,"0",0,
- "Ataque ala","Volador",60,10,"0",0,
- "Pantalla de humo","Normal",0,10,"Cegado",100,},
- {"Seviper","Veneno",120,"0",4,
- "Colmillo venenoso","Veneno",50,15,"Veneno",50,
- "Cola venenosa","Veneno",40,15,"Veneno",50,
- "Mordisco","Normal",60,15,"0",0,
- "Alarido","Normal",30,20,"0",0,},
- {"Azurill","Agua",120,"0",4,
- "Burbuja","Agua",40,20,"0",0,
- "Latigo","Normal",40,10,"Confusion",20,
- "Golpazo","Normal",80,10,"0",0,
- "Chorro de agua","Agua",60,15,"0",0},
- {"Swampert","Agua Tierra",350,"0",4,
- "Terremoto","Tierra",90,10,"0",0,
- "Agua lodosa","Agua",80,10,"0",0,
- "Disparo de lodo","Tierra",60,20,"Cegado",40,
- "Derribo","Normal",70,20,"0",0}};
- void ElegirPokemon(s_pokemon* pj,s_pokemon* pr);
- void MostrarPokemonElegido(s_pokemon pj,s_pokemon pr);
- void MostrarAtaquesPokemon(s_pokemon pj);
- void CalculoDanio(s_pokemon *pj, s_pokemon *pr);
- int main(){
- s_pokemon *p_pj1b,pj1,*p_pjrival, pjrival;
- p_pj1b = &pj1;
- p_pjrival = &pjrival;
- MostrarPokemon(6);
- ElegirPokemon(p_pj1b,p_pjrival);
- MostrarPokemonElegido(pj1,pjrival);
- while(pj1.vida>0 && pjrival.vida>0){
- MostrarAtaquesPokemon(pj1);
- CalculoDanio(&pj1,&pjrival);
- MostrarPokemonElegido(pj1,pjrival);
- }
- if(pj1.vida<0){
- printf("\n\n%s Ha sido debilitado.", pj1.nombre);
- }
- else{
- printf("\n\n%s Ha sido debilitado.", pjrival.nombre);
- }
- return 0;
- }
- void MostrarPokemon(int n){//Funcion que muestra los pokemones que se pueden elegir
- printf("Los pokemones que puede elegir son:\n");
- for(n=0;n<6;n++){
- printf("%d.-\nPokemon: %s tipo: %s \nVida: %d \n", n, lista[n].nombre, lista[n].tipo,lista[n].vida);
- }
- return;
- }
- void ElegirPokemon(s_pokemon* pj,s_pokemon* pr){
- int n,r;
- printf("\n\nIngrese el numero del pokemon que quiere escoger:\n");
- scanf("%d", &n);
- while(n>5 || n<0){
- printf("Pokemon no encontrado, Ingrese el pokemon que quiere escoger:\n");
- scanf("%d",&n);
- }
- *pj = lista[n];
- srand (time(NULL));
- *pr = lista[rand()%6];
- }
- void MostrarPokemonElegido(s_pokemon pj, s_pokemon pr){
- printf("\nPokemon: %s tipo: %s \nVida: %d Estado: %s\n\n", pj.nombre, pj.tipo,pj.vida,pj.estado);
- printf("Pokemon rival:\n");
- printf("Pokemon: %s tipo: %s \nVida: %d Estado: %s \n\n", pr.nombre, pr.tipo,pr.vida,pr.estado);
- }
- void MostrarAtaquesPokemon(s_pokemon pj){
- int i;
- for(i=0;i<4;i++){
- printf("Ataque %d\nNombre: %s Tipo: %s\ndanio: %d PP: %d\nEfecto: %s Prob: %d\n",i, pj.ataque_pokemon[i].nombre_habilidad, pj.ataque_pokemon[i].tipo_habilidad,
- pj.ataque_pokemon[i].danio, pj.ataque_pokemon[i].PP, pj.ataque_pokemon[i].efecto, pj.ataque_pokemon[i].prob_efect);
- }
- }
- void CalculoDanio(s_pokemon *pj, s_pokemon *pr){
- int n,multiplicador=1;
- printf("Ingrese el ataque que quiere usar:\n");
- scanf("%d", &n);
- while(pj->ataque_pokemon[n].PP<1){
- printf("Ataque sin pp, Ingrese otro movimiento:\n");
- scanf("%d", &n);
- }
- if(strcmp(pj->tipo,pj->ataque_pokemon[n].tipo_habilidad)==0){
- multiplicador *= 2;
- printf("\n\nEs SUPER efectivo\n\n");
- }
- pr->vida = pr->vida - pj->ataque_pokemon[n].danio*multiplicador;
- pj->ataque_pokemon[n].PP = pj->ataque_pokemon[n].PP - 1;
- if(pj->ataque_pokemon[n].prob_efect>rand()%101){
- strcpy(pr->estado,pj->ataque_pokemon[n].efecto);
- printf("El pokemon rival fue afectado por %s\n", pj->ataque_pokemon[n].efecto);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement