Advertisement
SPavelA

LinqTask4PlayersTop

Nov 14th, 2024 (edited)
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.77 KB | Gaming | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace LinqTask4PlayersTop
  6. {
  7.     internal class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             GameServer gameServer = new GameServer();
  12.  
  13.             gameServer.ShowTopPlayers(3);
  14.         }
  15.     }
  16.  
  17.     public class GameServer
  18.     {
  19.         private List<Player> _players = new List<Player>();
  20.  
  21.         public GameServer()
  22.         {
  23.             FillPlayers();
  24.         }
  25.  
  26.         public void ShowTopPlayers(int topPlayersCount)
  27.         {
  28.             Console.WriteLine("Весь список:");
  29.             ShowPlayers(_players);
  30.            
  31.             List<Player> playersTopByLevel = _players.OrderByDescending(player => player.Level).Take(topPlayersCount).ToList();
  32.  
  33.             Console.WriteLine($"\nТоп {topPlayersCount} по уровню:");
  34.             ShowPlayers(playersTopByLevel);
  35.            
  36.             List<Player> playersTopByPower = _players.OrderByDescending(player => player.Power).Take(topPlayersCount).ToList();
  37.  
  38.             Console.WriteLine($"\nТоп {topPlayersCount} по силе:");
  39.             ShowPlayers(playersTopByPower);
  40.         }
  41.  
  42.         private void ShowPlayers(List<Player> players)
  43.         {
  44.             foreach (var player in players)
  45.             {
  46.                 player.ShowInfo();
  47.             }
  48.         }
  49.  
  50.         private void FillPlayers()
  51.         {
  52.             const int MinimumLevel = 1;
  53.             const int MaximumLevel = 100;
  54.             const int MinimumPower = 1;
  55.             const int MaximumPower = 1000;
  56.  
  57.             string[] names = {
  58.                 "Вася",
  59.                 "Петя",
  60.                 "Леша",
  61.                 "Дима",
  62.                 "Айгуль",
  63.                 "Люся",
  64.                 "Паша",
  65.                 "Вера",
  66.                 "Зина",
  67.                 "Ася",
  68.                 "Нина",
  69.                 "Рома",
  70.                 "Саша",
  71.             };
  72.             Random random = new Random();
  73.  
  74.             foreach (string name in names)
  75.             {
  76.                 _players.Add(new Player(name, random.Next(MinimumLevel, MaximumLevel),
  77.                                             random.Next(MinimumPower, MaximumPower)));
  78.             }
  79.         }
  80.     }
  81.  
  82.     public class  Player
  83.     {
  84.         private string _name;
  85.  
  86.         public Player(string name, int level, int power)
  87.         {
  88.             _name = name;
  89.             Level = level;
  90.             Power = power;
  91.         }
  92.  
  93.         public int Level { get; private set; }
  94.         public int Power { get; private set; }
  95.  
  96.         public void ShowInfo()
  97.         {
  98.             Console.WriteLine($"{_name}, уровень: {Level}, сила: {Power}");
  99.         }
  100.     }
  101. }
  102.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement