Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace CSLight
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- PersonBase person = new PersonBase();
- person.ShowPlayers();
- }
- }
- class PersonBase
- {
- private List<Person> _players;
- public PersonBase()
- {
- GeneratePlayers();
- }
- public void ShowPlayers()
- {
- int playersCount = 3;
- Console.WriteLine($"Топ {playersCount} уровня");
- ShowList(CreateTopByLevel(playersCount));
- Console.WriteLine($"Топ {playersCount} по силе");
- ShowList(CreateTopByStrenght(playersCount));
- Console.ReadKey();
- }
- private IEnumerable<Person> CreateTopByStrenght(int playersCount)
- {
- var sortedList = _players.OrderByDescending(player => player.Strenght).Take(playersCount);
- return sortedList;
- }
- private IEnumerable<Person> CreateTopByLevel(int playersCount)
- {
- var sortedList = _players.OrderByDescending(player => player.Level).Take(playersCount);
- return sortedList;
- }
- private void ShowList(IEnumerable<Person> list)
- {
- foreach (Person person in list)
- {
- Console.WriteLine($"{person.Name} - {person.Level} - {person.Strenght}");
- }
- }
- private void GeneratePlayers()
- {
- PersonCreator creator = new PersonCreator();
- int dataBaseCapacity = 20;
- _players = new List<Person>();
- for (int i = 0; i < dataBaseCapacity; i++)
- {
- _players.Add(creator.CreatePerson());
- }
- }
- }
- class PersonCreator
- {
- private List<string> _names;
- public PersonCreator()
- {
- InitNames();
- }
- public Person CreatePerson()
- {
- int maxLevel = 100;
- int level = UserUtils.GenerateRandomValue(maxLevel);
- int maxStrenght = 50;
- int strenght = UserUtils.GenerateRandomValue(maxStrenght);
- string name = GetRandomValue(_names);
- return new Person(name, level, strenght);
- }
- private void InitNames()
- {
- _names = new List<string>
- {
- "Максим",
- "Михаил",
- "Александр",
- "Дмитрий",
- "Денис",
- "Илья",
- "Андрей",
- "Артем",
- "Иван",
- "Алексей",
- "Никита"
- };
- }
- private string GetRandomValue(List<string> values)
- {
- int randomId = UserUtils.GenerateRandomValue(values.Count);
- return values[randomId];
- }
- }
- class Person
- {
- public Person(string name, int level, int strenght)
- {
- Name = name;
- Level = level;
- Strenght = strenght;
- }
- public string Name { get; private set; }
- public int Level { get; private set; }
- public int Strenght { get; private set; }
- }
- static class UserUtils
- {
- private static Random s_random = new Random();
- public static int GenerateRandomValue(int maxValue)
- {
- return s_random.Next(maxValue);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement