public void Attaquer(Soldat ennemi) { // Si du même camp, on ne fait rien if (Camp == ennemi.Camp) { return; } if (Camp == Camp.Empire) { Console.WriteLine("Traitor!"); Console.WriteLine($"Le soldat {Matricule} attaque le rebelle {ennemi.Matricule} et lui inflige {Degats} de dégats."); Console.ResetColor(); } else { Console.WriteLine("Pour la princesse Organa!"); Console.WriteLine($"Le rebelle {Matricule} attaque le soldat {ennemi.Matricule} et lui inflige {Degats} de dégats."); Console.ResetColor(); } ennemi.Sante -= Degats; if (ennemi.IsDead(ennemi.Sante)) { Console.WriteLine("Le soldat ennemi est mort \r\n"); } else { Console.WriteLine($"Il reste {ennemi.Sante} de santé au soldat ennemi. \r\n"); } }
public Soldat PickHero(List <Soldat> soldats) { if (soldats.Count == 0) { throw new InvalidOperationException("Empty list"); } foreach (Soldat soldat in soldats) { if (soldat.Degats + soldat.Sante > 0) { hero = soldat; } } return(hero); }
public void LaunchBattle() { string favori = GetFavori(RebellesList, EmpireList); listeSoldats = new List <Soldat>(); listeSoldats.AddRange(RebellesList); listeSoldats.AddRange(EmpireList); if (Enum.TryParse(favori, out enumFavori) && enumFavori == Camp.Empire) { hero = PickHero(EmpireList); Console.WriteLine($"L'empire commence la bataille et le soldat {hero.Matricule} est le héros ! \r\n"); EmpireList[0].Attaquer(RebellesList[0]); } else { hero = PickHero(RebellesList); Console.WriteLine($"Les rebelles commencent la bataille et le rebelle {hero.Matricule} est le favori ! \r\n"); RebellesList[0].Attaquer(EmpireList[0]); } do { if (EmpireList.Count <= 0 || RebellesList.Count <= 0) { break; } Soldat soldatEmpire = EmpireList[rnd.Next(0, EmpireList.Count - 1)]; Soldat soldatRebelle = RebellesList[rnd.Next(0, RebellesList.Count - 1)]; listeSoldats[rnd.Next(0, 100)].Attaquer(listeSoldats[rnd.Next(0, 100)]); if (soldatEmpire.IsDead(soldatEmpire.Sante)) { EmpireList.Remove(soldatEmpire); } if (soldatRebelle.IsDead(soldatRebelle.Sante)) { RebellesList.Remove(soldatRebelle); } } while (true); }
static void Main(string[] args) { var rebellesList = new List <Soldat>(); var empireList = new List <Soldat>(); Random rnd = new Random(); for (int i = 0; i < 100; i++) { int sante = rnd.Next(1000, 2000); int degats = rnd.Next(100, 500); var v = Enum.GetValues(typeof(Camp)); Camp camp = (Camp)v.GetValue(new Random().Next(v.Length)); Matricule matricule = null; if (camp == Camp.Empire) { int matr = rnd.Next(100, 1000); matricule = new Matricule(matr); } else { string nom = $"Rebelle {i}"; matricule = new Matricule(nom); } Soldat soldat = new Soldat(sante, degats, camp, matricule); System.Threading.Thread.Sleep(10); if (soldat.Camp == Camp.Empire) { empireList.Add(soldat); } else { rebellesList.Add(soldat); } } Bataille bataille = new Bataille(rebellesList, empireList); Console.ReadLine(); }