Advertisement
RedFlys

Home work - top players

Jan 21st, 2022
1,101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.69 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 Home_Work
  8. {
  9.     class Program
  10.     {
  11.         static void Main()
  12.         {
  13.             Database database = new Database();
  14.             database.Work();
  15.         }
  16.     }
  17.  
  18.     class Database
  19.     {
  20.         private List<Player> _players;
  21.         private int countTopPlayers;
  22.  
  23.         public Database()
  24.         {
  25.             _players = new List<Player>();
  26.             Fill();
  27.             countTopPlayers = 3;
  28.         }
  29.  
  30.         public void Work()
  31.         {
  32.             bool isWorking = true;
  33.             List<Player> players = _players;
  34.             int number;
  35.  
  36.             while(isWorking == true)
  37.             {
  38.                 Console.WriteLine("Игроки: ");
  39.                 ShowSelection(players);
  40.                 Console.WriteLine("\n1. Вывести топ по уровню.\n2. Вывести топ по силе.\n3. Вывести всех.\n4. Выход.");
  41.                 Console.Write("Введите команду: ");
  42.                 number = GetNumber();
  43.  
  44.                 switch (number)
  45.                 {
  46.                     case 1:
  47.                         players = TakeTopByLevel();
  48.                         break;
  49.  
  50.                     case 2:
  51.                         players = TakeTopByPower();
  52.                         break;
  53.  
  54.                     case 3:
  55.                         players = _players;
  56.                         break;
  57.  
  58.                     case 4:
  59.                         isWorking = false;
  60.                         break;
  61.  
  62.                     default:
  63.                         Console.WriteLine("Неверная команда.");
  64.                         break;
  65.                 }
  66.  
  67.                 Console.ReadKey();
  68.                 Console.Clear();
  69.             }
  70.         }
  71.  
  72.         private int GetNumber()
  73.         {
  74.             bool isConverted = false;
  75.             int number = 0;
  76.             string userInput;
  77.  
  78.             while (isConverted == false)
  79.             {
  80.                 userInput = Console.ReadLine();
  81.                 isConverted = Int32.TryParse(userInput, out number);
  82.             }
  83.  
  84.             return number;
  85.         }
  86.  
  87.         private List<Player> TakeTopByLevel()
  88.         {
  89.             var sortedPlayers = _players.OrderByDescending(player => player.Level).Take(countTopPlayers).ToList();
  90.  
  91.             return sortedPlayers;
  92.         }
  93.  
  94.         private List<Player> TakeTopByPower()
  95.         {
  96.             var sortedPlayers = _players.OrderByDescending(player => player.Power).Take(countTopPlayers).ToList();
  97.  
  98.             return sortedPlayers;
  99.         }      
  100.  
  101.         private void ShowSelection(List<Player> players)
  102.         {
  103.             foreach (Player player in players)
  104.             {
  105.                 player.ShowInfo();
  106.             }
  107.         }
  108.  
  109.         private void Fill()
  110.         {
  111.             _players.Add(new Player("Черёмушко Алексей Алексеевич"));
  112.             _players.Add(new Player("Чер Дмитрий Алексеевич"));
  113.             _players.Add(new Player("Альанах Алексей Дмитриевич"));
  114.             _players.Add(new Player("Вассерман Анатолий Акашанович"));
  115.             _players.Add(new Player("Шерлок Ди Холмс"));
  116.             _players.Add(new Player("Макуночи Но Ипо"));
  117.             _players.Add(new Player("Грозный Иван Васильевич"));
  118.             _players.Add(new Player("Борн Дмитрий Анатольевич"));
  119.             _players.Add(new Player("Навальный Владимир Владиславович"));
  120.             _players.Add(new Player("Евпатий Калодратий"));
  121.             _players.Add(new Player("Никто"));
  122.             _players.Add(new Player("Андерсон Джон Викторович"));
  123.             _players.Add(new Player("Самураев Душнила Тёмович"));
  124.         }
  125.     }
  126.  
  127.     class Player
  128.     {
  129.         private static Random _random;
  130.         private string _fullName;
  131.         private int _power;
  132.         private int _level;
  133.  
  134.         static Player()
  135.         {
  136.             _random = new Random();
  137.         }
  138.  
  139.         public Player(string fullName)
  140.         {
  141.             int maxValue= 100;
  142.  
  143.             _fullName = fullName;
  144.             _level = _random.Next(maxValue); ;
  145.             _power = _random.Next(maxValue);
  146.         }
  147.  
  148.         public int Power => _power;
  149.         public int Level => _level;
  150.  
  151.         public void ShowInfo()
  152.         {
  153.             Console.WriteLine($"{_fullName}. Сила: {_power}. Уровень: {_level}.");
  154.         }
  155.     }
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement