TwinFrame

LINQ_TopPlayers

Dec 19th, 2020 (edited)
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Clight_41_LINQ_TopPlayers
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. Random random = new Random();
  12.  
  13. List<string> names = new List<string> { "Иван", "Владимир", "Оксана", "Генадий", "Марина",
  14. "Игорь", "Евгений", "Мария", "Надежда", "Руслан", "Сергей", "Ирина" };
  15.  
  16. List<Player> players = new List<Player> { };
  17.  
  18. foreach (var name in names)
  19. {
  20. int tempLevel = random.Next(50, 101);
  21. int tempForce = random.Next(50, 101);
  22. Player tempPlayer = new Player(name, tempLevel, tempForce);
  23. players.Add(tempPlayer);
  24. }
  25.  
  26. bool isExit = false;
  27.  
  28. while (!isExit)
  29. {
  30. Console.Clear();
  31. Console.CursorVisible = false;
  32. Console.WriteLine("База игроков.\n");
  33. Console.WriteLine("F1 - Вывести топ 3 игроков по уровню.");
  34. Console.WriteLine("F2 - Вывести топ 3 игроков по силе.");
  35. Console.WriteLine("F3 - Выход.");
  36.  
  37. ConsoleKeyInfo key = Console.ReadKey();
  38. Console.WriteLine();
  39.  
  40. switch (key.Key)
  41. {
  42. case ConsoleKey.F1:
  43. ShowTopPlayersByLevel(players);
  44. break;
  45.  
  46. case ConsoleKey.F2:
  47. ShowTopPlayersByForce(players);
  48. break;
  49.  
  50. case ConsoleKey.F3:
  51. isExit = true;
  52. break;
  53.  
  54. default:
  55. break;
  56. }
  57. }
  58. }
  59.  
  60. public static void ShowTopPlayersByLevel(List<Player> players)
  61. {
  62. Console.WriteLine("Топ 3 игрока по уровню: ");
  63.  
  64. var sortedPlayersByLevel = players.OrderByDescending(player => player.Level).Take(3).ToList();
  65.  
  66. foreach (var player in sortedPlayersByLevel)
  67. {
  68. player.ShowInfo();
  69. }
  70.  
  71. Console.ReadKey();
  72. }
  73.  
  74. public static void ShowTopPlayersByForce(List<Player> players)
  75. {
  76. Console.WriteLine("Топ 3 игрока по силе: ");
  77.  
  78. var sortedPlayersByForce = players.OrderByDescending(player => player.Force).Take(3).ToList();
  79.  
  80. foreach (var player in sortedPlayersByForce)
  81. {
  82. player.ShowInfo();
  83. }
  84.  
  85. Console.ReadKey();
  86. }
  87. }
  88.  
  89. class Player
  90. {
  91. public string Name { get; private set; }
  92. public int Level { get; private set; }
  93. public int Force { get; private set; }
  94.  
  95. public Player(string name, int level, int force)
  96. {
  97. Name = name;
  98. Level = level;
  99. Force = force;
  100. }
  101.  
  102. public void ShowInfo()
  103. {
  104. Console.WriteLine($"Имя: {Name}, Уровень: {Level}, Сила: {Force}");
  105. }
  106. }
  107. }
Add Comment
Please, Sign In to add comment