Dr_Max_Experience

Task 4

Jul 21st, 2022 (edited)
695
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.11 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ООП
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Archive archive = new Archive();
  14.  
  15.             archive.Work();
  16.         }
  17.     }
  18.  
  19.     class Player
  20.     {
  21.         public string Name { get; private set; }
  22.  
  23.         public int Level { get; private set; }
  24.  
  25.         public int Strongth { get; private set; }
  26.  
  27.         public Player(string name, int level, int strongth)
  28.         {
  29.             Name = name;
  30.             Level = level;
  31.             Strongth = strongth;
  32.         }
  33.  
  34.         public void ShowInfo()
  35.         {
  36.             Console.WriteLine($"{Name} | lvl {Level} | str {Strongth}");
  37.         }
  38.     }
  39.  
  40.     class Archive
  41.     {
  42.         private List<Player> _players = new List<Player>();
  43.  
  44.         public Archive()
  45.         {
  46.             int playersCount = 20;
  47.             int maxLevel = 20;
  48.             int maxStrongth = 500;
  49.             Random random = new Random();
  50.  
  51.             for (int i = 0; i < playersCount; i++)
  52.             {
  53.                 _players.Add(new Player($"Player_{i}", random.Next(maxLevel), random.Next(maxStrongth)));
  54.             }
  55.         }
  56.  
  57.         public void Work()
  58.         {
  59.             int topPlayerCount = 3;
  60.  
  61.             Console.WriteLine($"Топ {topPlayerCount} игроков по уровню: ");
  62.             var topPlayersToLevel = _players.OrderByDescending(player => player.Level).Take(topPlayerCount).ToList();
  63.             ShowTopThreePlayers(topPlayersToLevel);
  64.  
  65.             Console.WriteLine($"Топ {topPlayerCount} игроков по силе: ");
  66.             var topPlayersToStrongth = _players.OrderByDescending(player => player.Strongth).Take(topPlayerCount).ToList();
  67.             ShowTopThreePlayers(topPlayersToStrongth);
  68.  
  69.             Console.ReadKey();
  70.         }
  71.  
  72.         private void ShowTopThreePlayers(List<Player> topPlayers)
  73.         {
  74.             foreach (var player in topPlayers)
  75.             {
  76.                 player.ShowInfo();
  77.             }
  78.         }
  79.     }
  80. }
Add Comment
Please, Sign In to add comment