void combat_final () { //Entrée du nom du 1er dresseur printf("Dresseur 1, quel est votre nom\n"); char name_1[20]; lire (name_1,20); Dresseur d1 = name_dresseur (name_1); //Ajout des pokemons du dresseur 1 add_pok (new_pokemon ("Roucarnage", 370, new_attack("Aeropique", 60, 1.0), new_attack("Vol", 90, 0.65), new_attack("Cru-Aile", 60, 1.0), new_attack("Lame d'Air", 75, 0.85)), d1); add_pok (new_pokemon ("Salameche", 282, new_attack("Deflagration", 120, 0.45), new_attack("Lance-Flamme", 95, 0.65), new_attack("Charge", 50, 0.6), new_attack("Tacle", 50, 0.6)), d1); add_pok (new_pokemon ("Bulbizarre", 294, new_attack("Tonnerre", 50, 1.0), new_attack("Fatal Foudre", 50, 0.0), new_attack("Charge", 50, 0.6), new_attack("Tacle", 50, 0.6)), d1); add_pok (new_pokemon ("Ronflex", 524, new_attack("Tonnerre", 50, 1.0), new_attack("Fatal Foudre", 50, 0.0), new_attack("Charge", 50, 0.6), new_attack("Tacle", 50, 0.6)), d1); add_pok (new_pokemon ("Krabboss", 314, new_attack("Tonnerre", 50, 1.0), new_attack("Fatal Foudre", 50, 0.0), new_attack("Charge", 50, 0.6), new_attack("Tacle", 50, 0.6)), d1); add_pok (new_pokemon ("Pikachu", 274, new_attack("Tonnerre", 50, 1.0), new_attack("Fatal Foudre", 50, 0.0), new_attack("Charge", 50, 0.6), new_attack("Tacle", 50, 0.6)), d1); //Entrée du nom du deuxième dresseur printf("\n\nDresseur 2, quel est votre nom?\n"); char name_2[20]; lire (name_2, 20); Dresseur d2 = name_dresseur (name_2); //Ajout des pokemons du dresseur 2 add_pok (new_pokemon ("Aquali", 50, new_attack("Tonnerre", 25, 1.0), new_attack("Fatal Foudre", 50, 0.0), new_attack("Charge", 50, 0.6), new_attack("Tacle", 50, 0.6)), d2); add_pok (new_pokemon ("Elektek", 50, new_attack("Tonnerre", 50, 1.0), new_attack("Fatal Foudre", 50, 0.0), new_attack("Charge", 50, 0.6), new_attack("Tacle", 50, 0.6)), d2); add_pok (new_pokemon ("Mackogneur", 50, new_attack("Tonnerre", 50, 1.0), new_attack("Fatal Foudre", 50, 0.0), new_attack("Charge", 50, 0.6), new_attack("Tacle", 50, 0.6)), d2); add_pok (new_pokemon ("Racaillou", 50, new_attack("Tonnerre", 50, 1.0), new_attack("Fatal Foudre", 50, 0.0), new_attack("Charge", 50, 0.6), new_attack("Tacle", 50, 0.6)), d2); add_pok (new_pokemon ("Smogo", 50, new_attack("Tonnerre", 50, 1.0), new_attack("Fatal Foudre", 50, 0.0), new_attack("Charge", 50, 0.6), new_attack("Tacle", 50, 0.6)), d2); add_pok (new_pokemon ("Leviator", 50, new_attack("Tonnerre", 50, 1.0), new_attack("Fatal Foudre", 50, 0.0), new_attack("Charge", 50, 0.6), new_attack("Tacle", 50, 0.6)), d2); clear_screen (); printf ("Bienvenue a la finale de ce tournoi Pokemon opposant :\n\n" ); get_dresseur(d1); printf("\net\n\n"); get_dresseur(d2); printf("\nQue le combat commence! <Appuyez sur ENTREE pour continuer>\n"); clear_buffer(); clear_screen (); combat_final_aux (d1, d2); }
//Main fonction int main(void) { int fini = 1; int nb_victoire = 0; Liste Adversaires = NULL; Pokemon mon_pok; int diff = 1; //Défini les attaques possibles Attaque PO = new_attack("Poseidon", 90, "Eau"); Attaque CH = new_attack("Chalchiuhtlicue", 70, "Eau"); Attaque LL = new_attack("Llyr", 50, "Eau"); Attaque AO = new_attack("Ao Kuang", 30, "Eau"); Attaque HE = new_attack("Hephaestus", 90, "Feu"); Attaque SV = new_attack("Svarog", 70, "Feu"); Attaque AR = new_attack("Arshi Tngri", 50, "Feu"); Attaque TO = new_attack("Tohil", 30, "Feu"); Attaque ZE = new_attack("Zeus", 90, "Foudre"); Attaque TH = new_attack("Thunraz", 70, "Foudre"); Attaque TA = new_attack("Taranis", 50, "Foudre"); Attaque AT = new_attack("Atamshkai", 30, "Foudre"); Attaque AN = new_attack("Antheia", 90, "Herbe"); Attaque KE = new_attack("Kernunnos", 70, "Herbe"); Attaque YU = new_attack("Yum Caax", 50, "Herbe"); Attaque EM = new_attack("Emesh", 30, "Herbe"); //Défini les pokemons possibles Pokemon Meliae = new_pokemon("Meliae", "Herbe", 5, 15, 25, 25, 25, KE, TA, LL, TO); Pokemon Callirhoe = new_pokemon("Callirhoe", "Eau", 5, 20, 20, 25, 25, CH, AR, YU, AT); Pokemon Melinoe = new_pokemon("Melinoe", "Feu", 5, 25, 15, 25, 25, SV, TA, YU, AO); Pokemon Eratheis = new_pokemon("Eratheis", "Foudre", 5, 15, 15, 40, 40, TH, LL, AR, EM); Pokemon Kimeira = new_pokemon("Kimeira", "Feu", 15, 50, 50, 100, 100, PO, HE, ZE, AN); //Nettoie l'écran au début du jeu nettoie(); //Le joueur choisit la difficulté diff = difficulte(); //Le joueur choisit son pokemon mon_pok = choisit_debut (Meliae, Callirhoe, Melinoe, Eratheis); //Création de la liste des pokemons adverses Kimeira en dernier pour les modes autres que facile if (diff != 1) Adversaires = ajoute(Kimeira, Adversaires); Adversaires = ajoute(Meliae, Adversaires); Adversaires = ajoute(Callirhoe, Adversaires); Adversaires = ajoute(Melinoe, Adversaires); Adversaires = ajoute(Eratheis, Adversaires); //Nettoie l'écran après avoir choisit le pokemon nettoie(); //Fait des combats tant que le joueur n'a pas perdu, ou qu'il reste des pokemons à combattre while (fini && (Adversaires != NULL)) { printf("Votre pokemon %s va affronter %s. Bonne chance !\n\n\n\n", mon_pok.Nom, (Adversaires -> adv).Nom); //Si le joueur à gagner if ((combat (mon_pok, Adversaires -> adv, diff)) == 1) { //Monte le niveau du pokemon mon_pok = level_up(mon_pok); printf("Bravo ! Vous avez gagne un niveau, %s est maintenant niveau %d.\n\n\n\n", mon_pok.Nom, mon_pok.LVL); //Le soigne mon_pok.HP = mon_pok.HPMAX; //Calcule le nombre de combats remportés nb_victoire++; //Si c'était le dernier combat, gagné if (Adversaires -> suivant == NULL) { printf("Vous avez defait tous vos adversaires.\nGagne !\n\n"); fini = 0; } //Sinon on passe au pokemon suivant else { Adversaires = Adversaires -> suivant; } } //Si le joueur à perdu, on fini le jeu else { fini = 0; //Avec ou sans s à victoire selon (0,1) ou plus if (nb_victoire > 1) { printf("Dommage, vous avez perdu apres %d victoires.\n\n", nb_victoire); } else { printf("Dommage, vous avez perdu apres %d victoire.\n\n", nb_victoire); } } } return(0); }