Vapio

task44

Jun 22nd, 2021
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.57 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. public class Program
  6. {
  7.     public static void Main(string[] args)
  8.     {
  9.         Army army = new Army();
  10.         army.ShowSoldiersGroups();
  11.         army.DraftSoldiers();
  12.         army.ShowSoldiersGroups();
  13.     }
  14. }
  15.  
  16. public class Army
  17. {
  18.     private Random _random;
  19.     private List<Soldier> _soldiersGroupFirst;
  20.     private List<Soldier> _soldiersGroupSecond;
  21.  
  22.     public Army()
  23.     {
  24.         _soldiersGroupFirst = new List<Soldier>();
  25.         _soldiersGroupSecond = new List<Soldier>();
  26.         _random = new Random();
  27.         CreateSoldiers(_soldiersGroupFirst);
  28.         CreateSoldiers(_soldiersGroupSecond);
  29.     }
  30.  
  31.     public void ShowSoldiersGroups()
  32.     {
  33.         Console.WriteLine("\nFirst Group : ");
  34.         PrintSoldiers(_soldiersGroupFirst);
  35.  
  36.         Console.WriteLine("\nSeond Group : ");
  37.         PrintSoldiers(_soldiersGroupSecond);
  38.     }
  39.  
  40.     public void DraftSoldiers()
  41.     {
  42.         string letterSurnameStart = "B";
  43.  
  44.         Console.WriteLine("\n\nDraft Soldiers from Group First to Group Second.\n");
  45.  
  46.         var soldiersFiltered = _soldiersGroupFirst.Where(soldier => soldier.Surname.StartsWith(letterSurnameStart));
  47.         _soldiersGroupSecond.AddRange(soldiersFiltered);
  48.         _soldiersGroupFirst = _soldiersGroupFirst.Where(soldier =>
  49.                                                         soldier.Surname.StartsWith(letterSurnameStart) != true).
  50.                                                   ToList();
  51.     }
  52.  
  53.     private void PrintSoldiers(List<Soldier> soldiers)
  54.     {
  55.         Console.WriteLine();
  56.        
  57.         foreach (var soldier in soldiers)
  58.             Console.WriteLine(soldier);
  59.     }
  60.  
  61.     private void CreateSoldiers(List<Soldier> soldiers)
  62.     {
  63.         string[] names = { "Nick", "Rick", "Dick", "Virgil", "Dante" };
  64.         string[] surnames = {
  65.             "Alonso",
  66.             "Álvarez",
  67.             "Andrade",
  68.             "Ávalos",
  69.             "Ávila",
  70.             "Barrios",
  71.             "Beltrán",
  72.             "Benítez",
  73.             "Blanco",
  74.             "Bonilla",
  75.             "Bravo",
  76.             "Cárdenas",
  77.             "Córdova",
  78.             "Dávila",
  79.             "Díaz",
  80.             "Gómez",
  81.         };
  82.  
  83.         string[] ranks = {
  84.             "silver",
  85.             "silver elite",
  86.             "silver elite master",
  87.             "gold nova",
  88.             "master guardian",
  89.             "distinguished master guardian",
  90.             "legendary eagle",
  91.             "supreme master first class",
  92.             "global elite"
  93.         };
  94.  
  95.         int soldiersAmountMinimum = 10;
  96.         int soldiersAmountMaximum = 100;
  97.  
  98.         int amountSoldiers = _random.Next(soldiersAmountMinimum, soldiersAmountMaximum);
  99.  
  100.         string name;
  101.         string surname;
  102.         string rank;
  103.  
  104.         for (int i = 0; i < amountSoldiers; ++i)
  105.         {
  106.             name = names[_random.Next(names.Length)];
  107.             surname = surnames[_random.Next(surnames.Length)];
  108.             rank = ranks[_random.Next(ranks.Length)];
  109.             soldiers.Add(new Soldier(name, surname, rank));
  110.         }
  111.     }
  112. }
  113.  
  114. public class Soldier
  115. {
  116.     public string Name { get; private set; }
  117.     public string Surname { get; private set; }
  118.     public string Rank { get; private set; }
  119.  
  120.     public Soldier(string name, string surname, string rank)
  121.     {
  122.         Name = name;
  123.         Surname = surname;
  124.         Rank = rank;
  125.     }
  126.  
  127.     public override string ToString()
  128.     {
  129.         return String.Format($"{Name} {Surname} - {Rank}");
  130.     }
  131. }
Add Comment
Please, Sign In to add comment