Advertisement
TravaMan

Basic_Task24

Dec 31st, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.19 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace Basic_Task24
  5. {
  6.     class Program
  7.     {
  8.         static string mainMenu = "Меню.\n" +
  9.             "1. Добавить игрока\n" +
  10.             "2. Удалить игрока\n" +
  11.             "3. Забанить игрока\n" +
  12.             "4. Разбанить игрока\n" +
  13.             "5. Вывести всех игроков\n" +
  14.             "0. Выход\n";
  15.         static void Main(string[] args)
  16.         {
  17.             DataPlayers dataPlayers = new DataPlayers();
  18.  
  19.             while (true)
  20.             {
  21.                 switch (ReadInt(mainMenu))
  22.                 {
  23.                     case 1:
  24.                         {
  25.                             string nickname = ReadString("Введите никнейм игрока: ");
  26.                             int level = ReadInt("Введите уровень игрока: ");
  27.                             dataPlayers.AddPlayer(new Player(nickname, level));
  28.                             break;
  29.                         }
  30.                     case 2:
  31.                         {
  32.                             int id = ReadInt("Введите ID игрока: ");
  33.                             dataPlayers.RemovePlayer(id);
  34.                             break;
  35.                         }
  36.                     case 3:
  37.                         {
  38.                             int id = ReadInt("Введите ID игрока: ");
  39.                             dataPlayers.BanPlayer(id);
  40.                             break;
  41.                         }
  42.                     case 4:
  43.                         {
  44.                             int id = ReadInt("Введите ID игрока: ");
  45.                             dataPlayers.UnbanPlayer(id);
  46.                             break;
  47.                         }
  48.                     case 5:
  49.                         {
  50.                             dataPlayers.ShowAllPlayers();
  51.                             break;
  52.                         }
  53.                     case 0:
  54.                         return;
  55.                 }
  56.             }
  57.         }
  58.  
  59.         static int ReadInt(string menu)
  60.         {
  61.             int output = 0;
  62.             string input;
  63.             while (true)
  64.             {
  65.                 Console.Write(menu);
  66.                 input = Console.ReadLine();
  67.                 Console.Clear();
  68.                 if (int.TryParse(input, out output))
  69.                 {
  70.                     return output;
  71.                 }
  72.                 else
  73.                 {
  74.                     Console.WriteLine("Введено не число, попробуйте еще!");
  75.                 }
  76.             }
  77.         }
  78.  
  79.         static string ReadString(string menu)
  80.         {
  81.             while (true)
  82.             {
  83.                 Console.Write(menu);
  84.                 string input = Console.ReadLine();
  85.                 Console.Clear();
  86.                 if (input.Length != 0)
  87.                 {
  88.                     return input;
  89.                 }
  90.                 else
  91.                 {
  92.                     Console.WriteLine("Введена пустая строка, попробуйте еще!");
  93.                 }
  94.             }
  95.         }
  96.     }
  97.  
  98.     class Player
  99.     {
  100.         public int Id { get; }
  101.         public string Nickname { get; }
  102.         public int Level { get; }
  103.  
  104.         public bool isBanned { get; set; }
  105.  
  106.         private static int _ids = 0;
  107.  
  108.         public Player (string nickname, int level)
  109.         {
  110.             Id = ++_ids;
  111.             Nickname = nickname;
  112.             Level = level;
  113.             isBanned = false;
  114.         }
  115.     }
  116.  
  117.     class DataPlayers
  118.     {
  119.         private List<Player> players;
  120.  
  121.         public DataPlayers ()
  122.         {
  123.             players = new List<Player>();
  124.         }
  125.  
  126.         public void AddPlayer (Player player)
  127.         {
  128.             players.Add(player);
  129.         }
  130.  
  131.         public void BanPlayer (int id)
  132.         {
  133.             for (int i = 0; i < players.Count; i++)
  134.             {
  135.                 if (players[i].Id == id)
  136.                 {
  137.                     players[i].isBanned = true;
  138.                     return;
  139.                 }
  140.             }
  141.         }
  142.  
  143.         public void UnbanPlayer(int id)
  144.         {
  145.             for (int i = 0; i < players.Count; i++)
  146.             {
  147.                 if (players[i].Id == id)
  148.                 {
  149.                     players[i].isBanned = false;
  150.                     return;
  151.                 }
  152.             }
  153.         }
  154.  
  155.         public void RemovePlayer(int id)
  156.         {
  157.             for (int i = 0; i < players.Count; i++)
  158.             {
  159.                 if (players[i].Id == id)
  160.                 {
  161.                     players.RemoveAt(i);
  162.                     return;
  163.                 }
  164.             }
  165.         }
  166.  
  167.         public void ShowAllPlayers()
  168.         {
  169.             foreach (Player player in players)
  170.             {
  171.                 Console.Write($"{player.Id}. {player.Nickname} - {player.Level}");
  172.                 if (player.isBanned)
  173.                 {
  174.                     Console.Write(" (Забанен)");
  175.                 }
  176.                 Console.WriteLine();
  177.             }
  178.             Console.WriteLine();
  179.         }
  180.     }
  181. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement