Advertisement
RedFlys

CSharpLight HomeWork - OOP - DatabasePlayers

Feb 9th, 2021 (edited)
958
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.30 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace CSharpLight_HomeWork___OOP___DatabasePlayers
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             bool working = true;
  11.             string name;
  12.             int level;
  13.  
  14.             DatabasePlayers database = new DatabasePlayers();
  15.  
  16.             while (working)
  17.             {
  18.                 database.ShowDatabase();
  19.                 ShowCommand();
  20.                
  21.                 switch (Console.ReadLine())
  22.                 {
  23.                     case "1":
  24.                         Console.WriteLine("Введите никнейм: ");
  25.                         name = Console.ReadLine();
  26.                         Console.WriteLine("Введите уровень персонажа: ");
  27.                         level = GetInt(Console.ReadLine());
  28.                         database.AddPlayer(new Player(name, level));
  29.                         break;
  30.                     case "2":
  31.                         WriteNumber();
  32.                         database.DeletePlayer(GetInt(Console.ReadLine())-1);
  33.                         break;
  34.                     case "3":
  35.                         WriteNumber();
  36.                         database.BanPlayer(GetInt(Console.ReadLine())-1);
  37.                         break;
  38.                     case "4":
  39.                         WriteNumber();
  40.                         database.UnbanPlayer(GetInt(Console.ReadLine())-1);
  41.                         break;
  42.                     case "5":
  43.                         working = false;
  44.                         break;
  45.                     default:
  46.                         Console.WriteLine("Неправильный номер команды!");
  47.                         break;                    
  48.                 }
  49.  
  50.                 Console.Clear();
  51.             }
  52.         }
  53.  
  54.         static void ShowCommand()
  55.         {
  56.             Console.WriteLine("1. Добавить игрока \n2. Удалить игрока \n3. Забанить игрока \n4. Разбанить игрока \n5. Выход \nВведите номер команды: ");
  57.         }
  58.  
  59.         static void WriteNumber()
  60.         {
  61.  
  62.             Console.WriteLine("Введите номер игрока: ");
  63.         }
  64.  
  65.         static int GetInt(string userValue)            
  66.         {
  67.             int userNumber;
  68.  
  69.             while (true)
  70.             {
  71.                 if (Int32.TryParse(userValue, out userNumber))
  72.                 {
  73.                     break;
  74.                 }
  75.                 else
  76.                 {
  77.                     Console.WriteLine("Вы ввели не число. Введите пожалуйста число: ");
  78.                     userValue = Console.ReadLine();
  79.                 }
  80.             }
  81.  
  82.             return userNumber;
  83.         }
  84.     }
  85.  
  86.     class Player
  87.     {
  88.         private string _name;
  89.         private int _level;
  90.         private bool _banned;
  91.  
  92.         public Player( string name, int level)
  93.         {
  94.             _name = name;
  95.             _level = level;
  96.             _banned = false;
  97.         }
  98.  
  99.         public void Ban()
  100.         {
  101.             _banned = true;
  102.         }
  103.  
  104.         public void Unban()
  105.         {
  106.             _banned = false;
  107.         }
  108.  
  109.         public void ShowInfo()
  110.         {
  111.             Console.WriteLine($"{_name}, уровень {_level}. Статус: {ShowStatusBanned()}.");
  112.         }
  113.  
  114.         private string ShowStatusBanned()
  115.         {            
  116.             if (_banned)
  117.             {                
  118.                 return "Забанен";
  119.             }
  120.             else
  121.             {
  122.                 return "Нормальный";
  123.             }          
  124.         }
  125.     }
  126.  
  127.     class DatabasePlayers
  128.     {
  129.         private List<Player> _players = new List<Player>();
  130.  
  131.         public void AddPlayer(Player player)
  132.         {
  133.             _players.Add(player);
  134.         }
  135.  
  136.         public void DeletePlayer(int number)
  137.         {
  138.             if (CheckPlayer(number))
  139.             {
  140.                 _players.RemoveAt(number);
  141.             }
  142.         }
  143.  
  144.         public void ShowDatabase()
  145.         {
  146.             if (_players.Count == 0)
  147.             {
  148.                 Console.WriteLine("В базе нет игроков.\n");
  149.             }
  150.             else
  151.             {
  152.                 int i = 1;
  153.  
  154.                 foreach (var player in _players)
  155.                 {
  156.                     Console.Write($"{i}. ");
  157.                     player.ShowInfo();
  158.                     i++;
  159.                 }
  160.  
  161.                 Console.WriteLine();
  162.             }
  163.         }
  164.  
  165.         public void BanPlayer(int number)
  166.         {
  167.             if (CheckPlayer(number))
  168.             {
  169.                 _players[number].Ban();
  170.             }
  171.         }
  172.  
  173.         public void UnbanPlayer(int number)
  174.         {
  175.             if (CheckPlayer(number))
  176.             {
  177.                 _players[number].Unban();
  178.             }
  179.         }
  180.  
  181.         private bool CheckPlayer(int number)
  182.         {
  183.             if (number > 0 && number < _players.Count)
  184.             {
  185.                 return true;
  186.             }
  187.             else
  188.             {
  189.                 Console.WriteLine("Такого игрока нет!");
  190.                 Console.ReadKey();
  191.                 return false;
  192.             }
  193.         }
  194.     }
  195. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement