W1thr

ООП-3

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