Example #1
0
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);


}
Example #2
0
//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);
}