public const int TankDefence = 30; // Tanko gynyba pagal kurias suranda tanką static void Main(string[] args) { Console.ReadKey(); Console.OutputEncoding = Encoding.UTF8; //Konsolėje rašo lietuviškas raides Program p = new Program(); const string DataDir = @"..\..\Data"; BranchContainer branchContainer = new BranchContainer(); p.ReadData(DataDir, ref branchContainer); CreateReportTable(branchContainer, "ReportTable.txt"); PrintMostPopularRole(branchContainer); Console.WriteLine("2.Išspausdina pasikartojančius veikėjų vardus į Klaidos.csv"); WriteFilteredPlayersData(branchContainer, "Klaidos.csv"); Console.ReadKey(); Console.WriteLine(); Console.WriteLine("3.Išspausdina tankus pagal gyvybės ir gynybos taškus į Tankai.csv"); var filteredTanksHeroes = new PlayerContainer(); var filteredTanksNPCs = new PlayerContainer(); PrintTanks(branchContainer, "Tankai.csv", out filteredTanksHeroes, out filteredTanksNPCs); Console.WriteLine(); int intelligenceLimit = ReadInt("4.Įveskite sveikąją reikšmę, kuria norėtumete, kad Herojai viršytų intelekto dydį: "); int damagePoint = ReadInt("4.Įveskite sveikąją reikšmę, kuria norėtumėte, kad NPCs neviršytų žalos taškų dydžio: "); Console.WriteLine("4.Išspausdina rinktinę pagal Herojų intelektą ir NPCs žalos taškus į Rinktine.csv"); var selectionHeroes = new PlayerContainer(); var selectionNPCs = new PlayerContainer(); PrintGeneralSelection(branchContainer, "Rinktine.csv", intelligenceLimit, damagePoint, out selectionHeroes, out selectionNPCs); Console.ReadKey(); }
/// <summary> /// Įrašo tankus į failą. /// </summary> /// <param name="branchContainer">Filialų konteineris</param> /// <param name="file">Failas</param> /// <param name="filteredTanksHeroes">Herojų tankų konteineris</param> /// <param name="filteredTanksNPCs">NPCs tankų konteineris</param> public static void PrintTanks(BranchContainer branchContainer, string file, out PlayerContainer filteredTanksHeroes, out PlayerContainer filteredTanksNPCs) { FindTanks(branchContainer, out filteredTanksHeroes, out filteredTanksNPCs); using (var writer = new StreamWriter(file, false, Encoding.UTF8)) { writer.WriteLine("Herojai"); writer.WriteLine("Vardas;Klasė;Gyvybės taškai;Mana;Žalos taškai;Gynybos taškai;Jėga;Vikrumas;Intelektas;Ypatinga galia"); for (int i = 0; i < filteredTanksHeroes.Count; i++) { writer.WriteLine(filteredTanksHeroes.GetPlayer(i).ToText()); } writer.WriteLine(); writer.WriteLine("NPC"); writer.WriteLine("Vardas;Klasė;Gyvybės taškai;Mana;Žalos taškai;Gynybos taškai;Gildija"); for (int i = 0; i < filteredTanksNPCs.Count; i++) { writer.WriteLine(filteredTanksNPCs.GetPlayer(i).ToText()); } } }
/// <summary> /// Suranda veikėjų rinktinę ir ideda į konteinerius /// </summary> /// <param name="branchContainer">Filialų konteineris</param> /// <param name="intelligenceLimit">Intelekto nurodytas dydis</param> /// <param name="damagePoint">Žalos taškų nurodytas dydis</param> /// <param name="selectionHeroes">Herojų rinktinės konteineris</param> /// <param name="selectionNPCs">NPCs rinktinės konteineris</param> public static void GeneralSelection(BranchContainer branchContainer, int intelligenceLimit, int damagePoint, out PlayerContainer selectionHeroes, out PlayerContainer selectionNPCs) { selectionHeroes = new PlayerContainer(); selectionNPCs = new PlayerContainer(); for (int i = 0; i < branchContainer.Count; i++) { for (int j = 0; j < branchContainer.GetBranch(i).Players.Count; j++) { if ((branchContainer.GetBranch(i).GetPlayer(j) is Hero) && (branchContainer.GetBranch(i).GetPlayer(j) as Hero).Intelligence > intelligenceLimit) { selectionHeroes.AddPlayer(branchContainer.GetBranch(i).GetPlayer(j)); } } for (int j = 0; j < branchContainer.GetBranch(i).Players.Count; j++) { if ((branchContainer.GetBranch(i).GetPlayer(j) is NPC) && (branchContainer.GetBranch(i).GetPlayer(j) as NPC).Damage <= damagePoint) { selectionNPCs.AddPlayer(branchContainer.GetBranch(i).GetPlayer(j)); } } } }
/// <summary> /// Suranda veikėjus tankus ir ideda juos į konteinerius /// </summary> /// <param name="branchContainer">Filialų konteineris</param> /// <param name="filteredTanksHeroes">Herojų tankų konteineris</param> /// <param name="filteredTanksNPCs">Herojų NPCs konteineris</param> public static void FindTanks(BranchContainer branchContainer, out PlayerContainer filteredTanksHeroes, out PlayerContainer filteredTanksNPCs) { filteredTanksHeroes = new PlayerContainer(); filteredTanksNPCs = new PlayerContainer(); for (int i = 0; i < branchContainer.Count; i++) { for (int j = 0; j < branchContainer.GetBranch(i).Players.Count; j++) { if ((branchContainer.GetBranch(i).GetPlayer(j) is Hero) && branchContainer.GetBranch(i).GetPlayer(j).IsTank(TankHealth, TankDefence)) { filteredTanksHeroes.AddPlayer(branchContainer.GetBranch(i).GetPlayer(j)); } } for (int j = 0; j < branchContainer.GetBranch(i).Players.Count; j++) { if ((branchContainer.GetBranch(i).GetPlayer(j) is NPC) && branchContainer.GetBranch(i).GetPlayer(j).IsTank(TankHealth, TankDefence)) { filteredTanksNPCs.AddPlayer(branchContainer.GetBranch(i).GetPlayer(j)); } } } }
/// <summary> /// Įrašo rinktinę į failą /// </summary> /// <param name="branchContainer">Filialų konteineris</param> /// <param name="file">Failas</param> /// <param name="intelligenceLimit">Intelekto nurodytas dydis</param> /// <param name="damagePoint">Žalos taškų nurodytas dydis</param> /// <param name="selectionHeroes">Herojų rinktinės konteineris</param> /// <param name="selectionNPCs">NPCs rinktinės konteineris</param> public static void PrintGeneralSelection(BranchContainer branchContainer, string file, int intelligenceLimit, int damagePoint, out PlayerContainer selectionHeroes, out PlayerContainer selectionNPCs) { GeneralSelection(branchContainer, intelligenceLimit, damagePoint, out selectionHeroes, out selectionNPCs); selectionHeroes.SortPlayers(); selectionNPCs.SortPlayers(); using (var writer = new StreamWriter(file, false, Encoding.UTF8)) { writer.WriteLine("Herojai"); writer.WriteLine("Vardas;Klasė;Gyvybės taškai;Mana;Žalos taškai;Gynybos taškai;Jėga;Vikrumas;Intelektas;Ypatinga galia"); for (int i = 0; i < selectionHeroes.Count; i++) { writer.WriteLine(selectionHeroes.GetPlayer(i).ToText()); } writer.WriteLine(); writer.WriteLine("NPC"); writer.WriteLine("Vardas;Klasė;Gyvybės taškai;Mana;Žalos taškai;Gynybos taškai;Gildija"); for (int i = 0; i < selectionNPCs.Count; i++) { writer.WriteLine(selectionNPCs.GetPlayer(i).ToText()); } } }