Advertisement
OldBeliver

PlayerDatabase_ver01

Apr 14th, 2021
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.10 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 PlayerDatabase_01
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             bool isOpen = true;
  14.             string userInput;
  15.  
  16.             Register register = new Register(new List<Gamer>());
  17.  
  18.             while (isOpen)
  19.             {
  20.                 Console.WriteLine($"админка управления игроками\n");
  21.                 Console.WriteLine($"0 - реестр игроков\n1 - добавить игрока\n2 - бан/разбан игрока\n3 - удаление игрока\n4 - выход\n");
  22.  
  23.                 Console.Write($"Введите номер команды: ");
  24.                 userInput = Console.ReadLine();
  25.  
  26.                 switch (userInput)
  27.                 {
  28.                     case "0":
  29.                         register.ShowRecords();
  30.                         break;
  31.                     case "1":
  32.                         Console.WriteLine($"\nДобавление игрока\n");
  33.                         register.AddRecord();
  34.                         break;
  35.                     case "2":
  36.                         register.BanUnBan();
  37.                         break;
  38.                     case "3":
  39.                         register.DeleteRecord();
  40.                         break;
  41.                     case "4":
  42.                         Console.WriteLine($"\nвыход из программы");
  43.                         isOpen = false;
  44.                         break;
  45.                 }
  46.                 Console.Write($"\nнажмите любую для продолжения ");
  47.                 Console.ReadKey();
  48.                 Console.Clear();
  49.             }            
  50.         }
  51.     }
  52.  
  53.     class Gamer
  54.     {
  55.         private string _nickname;
  56.         private int _level;
  57.         public bool IsBanned { get; set; }
  58.  
  59.         public Gamer(string nickname, int level, bool isBanned)
  60.         {
  61.             _nickname = nickname;
  62.             _level = level;
  63.             IsBanned = isBanned;
  64.         }
  65.  
  66.         public void ShowInfo()
  67.         {
  68.             string status = "активный";
  69.             if (IsBanned) status = "предан анафеме";
  70.  
  71.             Console.WriteLine($"имя игрока: {_nickname}, {_level} уровень, статус: {status}");
  72.         }
  73.     }
  74.  
  75.     class Register
  76.     {
  77.         private List<Gamer> _gamers;
  78.  
  79.         public Register(List<Gamer> gamers)
  80.         {
  81.             _gamers = gamers;
  82.         }
  83.  
  84.         public void ShowRecords()
  85.         {
  86.             int index = 0;
  87.             for (int i = 0; i < _gamers.Count; i++)
  88.             {
  89.                 index = i + 1;
  90.                 Console.Write($"{index}. ");
  91.                 _gamers[i].ShowInfo();
  92.             }
  93.  
  94.             if (_gamers.Count <= 0) Console.WriteLine($"\nсписок пуст");
  95.         }
  96.  
  97.         public void AddRecord()
  98.         {
  99.             Console.Write($"Введите имя игрока: ");
  100.             string nickname = Console.ReadLine();
  101.  
  102.             Console.Write($"Введите уровень игрока: ");
  103.             int limit = 10;
  104.             int level, number;
  105.  
  106.             if (NumberRange(limit, out number))
  107.             {
  108.                 level = number;                
  109.             }
  110.             else
  111.             {
  112.                 level = 1;
  113.             }
  114.  
  115.             bool isBanned = false;
  116.            
  117.             _gamers.Add(new Gamer(nickname, level, isBanned));
  118.            
  119.             Console.WriteLine($"Добавлен игрок {nickname}");
  120.         }
  121.  
  122.         public void BanUnBan()
  123.         {
  124.             int index;
  125.             bool flag;
  126.  
  127.             Console.Write($"Введите номер игрока для блокировки/разблокировки: ");
  128.             if (NumberRange(_gamers.Count, out index))
  129.             {  
  130.                 flag = _gamers[index].IsBanned;
  131.                
  132.                 flag = !flag;
  133.                
  134.                 _gamers[index].IsBanned = flag;
  135.  
  136.                 Console.WriteLine($"\nСтатус игрока изменен");
  137.             }                                  
  138.         }
  139.  
  140.         public void DeleteRecord()
  141.         {            
  142.             int index;
  143.  
  144.             Console.Write($"Введите номер игрока для удаления: ");
  145.  
  146.             if (NumberRange(_gamers.Count, out index))
  147.             {                
  148.                 _gamers.RemoveAt(index);
  149.                 Console.WriteLine($"\nигрок удален");
  150.             }
  151.             else
  152.             {
  153.                 Console.WriteLine($"\nиндекс вне диапазона");
  154.             }
  155.         }
  156.  
  157.         private bool NumberRange(int limit, out int number)
  158.         {
  159.             bool isRange;
  160.             isRange = int.TryParse(Console.ReadLine(),out number);
  161.  
  162.             if(number <1 || number > limit)
  163.             {
  164.                 isRange = false;
  165.             }
  166.             --number;
  167.             return isRange;
  168.         }
  169.     }
  170. }
  171.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement