Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace Ijunior
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- Leaderboard leaderboard = new Leaderboard();
- leaderboard.Work();
- }
- }
- class Leaderboard
- {
- private Database _database = new Database();
- public void Work()
- {
- Console.WriteLine("Топ игроков по уровню:\n");
- SortPlayersByLevel();
- Console.WriteLine("\n\nТоп игроков по силе:\n");
- SortPlayersByStrength();
- }
- private void SortPlayersByLevel()
- {
- int countPlayers = 3;
- var sortedPlayers = _database.Players.OrderByDescending(player => player.Level).Take(countPlayers).ToList();
- ShowPlayers(sortedPlayers);
- }
- private void SortPlayersByStrength()
- {
- int countPlayers = 3;
- var sortedPlayers = _database.Players.OrderByDescending(player => player.Strength).Take(countPlayers).ToList();
- ShowPlayers(sortedPlayers);
- }
- private void ShowPlayers(List<Player> players)
- {
- foreach (Player player in players)
- {
- Console.WriteLine($"{player.Name} - уровень {player.Level}, сила {player.Strength}");
- }
- }
- }
- class Database
- {
- private List<Player> _players;
- public Database()
- {
- _players = new List<Player>();
- AddPatients();
- }
- public List<Player> Players => _players.ToList();
- private void AddPatients()
- {
- _players.Add(new Player("ОхотникТеней", GenerateLevel(), GenerateStrength()));
- _players.Add(new Player("ЛедянойФеникс", GenerateLevel(), GenerateStrength()));
- _players.Add(new Player("ВолкОдинокий", GenerateLevel(), GenerateStrength()));
- _players.Add(new Player("ДемонСкиталец", GenerateLevel(), GenerateStrength()));
- _players.Add(new Player("СолнечныйВампир", GenerateLevel(), GenerateStrength()));
- _players.Add(new Player("ГрозовойМаг", GenerateLevel(), GenerateStrength()));
- _players.Add(new Player("ТайныйСтраж", GenerateLevel(), GenerateStrength()));
- _players.Add(new Player("СвободныйБродяга", GenerateLevel(), GenerateStrength()));
- _players.Add(new Player("ВечныйВоитель", GenerateLevel(), GenerateStrength()));
- _players.Add(new Player("ДраконийМеч", GenerateLevel(), GenerateStrength()));
- }
- private int GenerateLevel()
- {
- int minLevel = 1;
- int maxLevel = 101;
- return Utils.GetRandomNumber(minLevel, maxLevel);
- }
- private int GenerateStrength()
- {
- int minStrength = 1;
- int maxStrength = 51;
- return Utils.GetRandomNumber(minStrength, maxStrength);
- }
- }
- class Player
- {
- public Player(string name, int level, int strength)
- {
- Name = name;
- Level = level;
- Strength = strength;
- }
- public string Name { get; }
- public int Level { get; }
- public int Strength { get; }
- }
- class Utils
- {
- private static Random s_random = new Random();
- public static int GetRandomNumber(int minValue, int maxValue)
- {
- return s_random.Next(minValue, maxValue);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment