public void accepterTournoi(ref IAttaquantArme un, ref IAttaquantArme deux) { int turn = 1; while (un.getVie() > 0 && deux.getVie() > 0) { if (turn == 1) { Personnage cible = deux as Personnage; un.attaqueSpecialeArme(cible); turn++; } else if (turn == 2) { Personnage cible = un as Personnage; deux.attaqueSpecialeArme(cible); turn--; } try { if (un.getVie() <= 0 || deux.getVie() <= 0) { throw new pdvSousZeroException(); } } catch (pdvSousZeroException) { } } }
static void Main(string[] args) { Personnage joueur1 = null; //Récupération du nom Console.WriteLine("Bonjour, quel est ton nom?"); string name = Console.ReadLine(); //Boucle de vérification du type du perso bool typePersoValide = false; while (!typePersoValide) { Console.Clear(); //Récupération du type du personnage Console.WriteLine("Quel sera ton type de personnage?"); Console.WriteLine("1 : Guerrier"); Console.WriteLine("2 : Voleur"); Console.WriteLine("3 : Mage"); Console.WriteLine("4 : Chaman"); Console.WriteLine("5 : Paladin"); string getTypePerso = Console.ReadLine(); int typePerso = int.Parse(getTypePerso); //Création du personnage en fonction du type en précisant le nom if (typePerso == 1) { typePersoValide = true; joueur1 = new Guerrier(name); Console.WriteLine("Votre Guerrier a été créé !"); } else if (typePerso == 2) { typePersoValide = true; joueur1 = new Voleur(name); Console.WriteLine("Votre Voleur a été créé !"); } else if (typePerso == 3) { typePersoValide = true; joueur1 = new Mage(name); Console.WriteLine("Votre Mage a été créé !"); } else if (typePerso == 4) { typePersoValide = true; joueur1 = new Chaman(name); Console.WriteLine("Votre Chaman a été créé !"); } else if (typePerso == 5) { typePersoValide = true; joueur1 = new Paladin(name); Console.WriteLine("Votre Paladin a été créé !"); } else { Console.WriteLine("Valeur saisie incorrecte ! Veuillez saisir une valeur entre 1 et 4"); System.Threading.Thread.Sleep(2000); } } //Team equipe1 = new Team(); //Créer une team de 10 perso aléatoire (Il est aussi possible de spécifier un nombre de membres) //equipe1.afficher(); Tournoi tournoi = new Tournoi(); IAttaquantMagie joueur2 = new Mage("j2"); // On Créer des personnages IAttaquantArme joueur3 = new Guerrier("j3"); // pour se battre avec le joueur 1 //Bloc pour demander au joueur s'il veut jouer avec les armes ou les sort si il est paladin int sortOuArme = 0; if (joueur1 is Persos.Paladin) { Console.WriteLine("En tant que paladin, voulez-vous jouer avec les sort ou les armes?"); Console.WriteLine("1 : Sort"); Console.WriteLine("2 : Arme"); string getTypePerso = Console.ReadLine(); sortOuArme = int.Parse(getTypePerso); } //On cast le joueur 1 en fonction de son type de personnage choisi if (joueur1 is Persos.Mage || joueur1 is Persos.Chaman || sortOuArme == 1) { IAttaquantMagie castedJoueur1Magie = (IAttaquantMagie)joueur1; Console.WriteLine("\nLes Personnage vont se battre tour à tour automatiquement\n"); tournoi.accepterTournoi(ref castedJoueur1Magie, ref joueur2); Console.WriteLine("\nVie de votre personnage : " + castedJoueur1Magie.getVie()); Console.WriteLine("Vie du personnage adverse : " + joueur2.getVie()); } else if (joueur1 is Persos.Guerrier || joueur1 is Persos.Voleur || sortOuArme == 2) { IAttaquantArme castedJoueur1Arme = (IAttaquantArme)joueur1; Console.WriteLine("\nLes Personnage vont se battre tour à tour automatiquement\n"); tournoi.accepterTournoi(ref castedJoueur1Arme, ref joueur3); Console.WriteLine("\nVie de votre personnage : " + castedJoueur1Arme.getVie()); Console.WriteLine("Vie du personnage adverse : " + joueur3.getVie()); } #region Code Pour Le traitement Asynchrone /*Thread thr1 = new Thread(tournoi.accepterTournoi(ref castedJoueur1Arme, ref joueur3)); * Thread thr2 = new Thread(tournoi.accepterTournoi(ref castedJoueur1Arme, ref joueur3)); * thr1.Start(); * thr2.Start(); * Reste à travailler avec les équipes et ajouter des vitesse d'attaque pour rendre les thread utiles */ #endregion }