Garloon

5.2

Sep 9th, 2019
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.64 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 CSLight
  8. {
  9.     class Menu
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Player[] players = new Player[0];
  14.             Database playerDB = new Database(players);
  15.  
  16.             bool mainMenu = true, playerControlMenu;
  17.  
  18.             while (mainMenu == true)
  19.             {
  20.                 Console.Clear();
  21.                 Console.WriteLine("БАЗА ДАННЫХ ИГРОКОВ");
  22.                 Console.WriteLine("\nМЕНЮ" +
  23.                     "\n1. Меню управления игроками" +
  24.                     "\n2. Меню управления банами" +
  25.                     "\n3. Показать всех игроков" +
  26.                     "\n4. Выход");
  27.                 Console.Write("\nВаше действие: ");
  28.                 switch (Convert.ToInt32(Console.ReadLine()))
  29.                 {
  30.                     case 1:
  31.                         playerControlMenu = true;
  32.                         while(playerControlMenu == true)
  33.                         {
  34.                             Console.Clear();
  35.                             Console.WriteLine("МЕНЮ УПРАВЛЕНИЯ ИГРОКАМИ");
  36.                             Console.WriteLine("\n1. Добавить игрока" +
  37.                                 "\n2. Удалить игрока" +
  38.                                 "\n3. Назад");
  39.                             Console.Write("\nВаше действие: ");
  40.                             switch (Convert.ToInt32(Console.ReadLine()))
  41.                             {
  42.                                 case 1:
  43.                                     Console.Write("\nВведите имя: ");
  44.                                     string name = Console.ReadLine();
  45.                                     Console.Write("\nВведите уровень: ");
  46.                                     int level = Convert.ToInt32(Console.ReadLine());
  47.                                     playerDB.AddPlayer(ref name, ref level);
  48.                                     ConsoleMessage("Успешно");
  49.                                     break;
  50.                                 case 2:
  51.                                     Console.Clear();
  52.                                     Console.WriteLine("СПИСОК ВСЕХ ИГРОКОВ\n");
  53.                                     playerDB.WriteAllPlayers();
  54.                                     Console.Write("\nВведите ID игрока: ");
  55.                                     int delID = Convert.ToInt32(Console.ReadLine());
  56.                                     delID--;
  57.                                     playerDB.DelPlayer(ref delID);
  58.                                     ConsoleMessage("Успешно");
  59.                                     break;
  60.                                 case 3:
  61.                                     playerControlMenu = false;
  62.                                     break;
  63.                                 default:
  64.                                     ConsoleMessage("Такой пункт меню отсутствует");
  65.                                     break;
  66.                             }
  67.                         }
  68.                         break;
  69.                     case 2:
  70.                         Console.Clear();
  71.                         Console.WriteLine("СПИСОК ВСЕХ ИГРОКОВ\n");
  72.                         playerDB.WriteAllPlayers();
  73.                         Console.Write("\nВведите ID игрока: ");
  74.                         int banID = Convert.ToInt32(Console.ReadLine());
  75.                         playerDB.BanStats(ref banID);
  76.                         Console.ReadKey();
  77.                         break;
  78.                     case 3:
  79.                         Console.Clear();
  80.                         Console.WriteLine("СПИСОК ВСЕХ ИГРОКОВ\n");
  81.                         playerDB.WriteAllPlayers();
  82.                         Console.ReadKey();
  83.                         break;
  84.                     case 4:
  85.                         mainMenu = false;
  86.                         break;
  87.                     default:
  88.                         ConsoleMessage("Такой пункт меню отсутствует");
  89.                         break;
  90.                 }
  91.             }
  92.         }
  93.         static void ConsoleMessage(string message)
  94.         {
  95.             Console.ForegroundColor = ConsoleColor.DarkYellow;
  96.             Console.WriteLine(message);
  97.             Console.ResetColor();
  98.             Console.ReadKey();
  99.             Console.Clear();
  100.         }
  101.     }
  102.     class Player
  103.     {
  104.         public int Id { get; set; }
  105.         public string Name { get; set; }
  106.         public int Level { get; set; }
  107.         public bool Banned { get; set; }
  108.  
  109.         public Player(ref string name, ref int level)
  110.         {
  111.             Name = name;
  112.             Level = level;
  113.         }
  114.  
  115.         public void WritePlayer()
  116.         {
  117.             Console.Write("ID " + (++Id) + ": " + Name + " (" + Level + " уровень)");
  118.             if(Banned == true)
  119.             {
  120.                 Console.ForegroundColor = ConsoleColor.Red;
  121.                 Console.WriteLine(" <==> ЗАБЛОКИРОВАН");
  122.                 Console.ResetColor();
  123.             }
  124.             else
  125.                 Console.WriteLine();
  126.         }
  127.     }
  128.  
  129.     class Database
  130.     {
  131.         public Player[] Players;
  132.  
  133.         public Database(Player[] players)
  134.         {
  135.             Players = players;
  136.         }
  137.  
  138.         public void WriteAllPlayers()
  139.         {
  140.             for(int i = 0; i < Players.Length; i++)
  141.             {
  142.                 Players[i].Id = i;
  143.                 Players[i].WritePlayer();
  144.             }
  145.         }
  146.  
  147.         public void AddPlayer(ref string name, ref int level)
  148.         {
  149.             Player newPlayer = new Player(ref name, ref level);
  150.             Player[] tmpPlayers = new Player[Players.Length + 1];
  151.             for (int i = 0; i < Players.Length; i++)
  152.             {
  153.                 tmpPlayers[i] = Players[i];
  154.             }
  155.             tmpPlayers[tmpPlayers.Length - 1] = newPlayer;
  156.             Players = tmpPlayers;
  157.         }
  158.  
  159.         public void DelPlayer(ref int id)
  160.         {
  161.             int index = -1;
  162.  
  163.             for (int i = 0; i < Players.Length; ++i)
  164.             {
  165.                 if (i == id)
  166.                 {
  167.                     index = i;
  168.                     break;
  169.                 }
  170.             }
  171.             Player[] tempName = new Player[Players.Length - 1];
  172.             for (int i = 0, j = 0; i < tempName.Length; ++i, ++j)
  173.             {
  174.                 if (j == index)
  175.                     ++j;
  176.  
  177.                 tempName[i] = Players[j];
  178.             }
  179.             Players = tempName;
  180.         }
  181.  
  182.         public void BanStats(ref int id)
  183.         {
  184.             foreach (Player player in Players)
  185.             {
  186.                 if (player.Id == id)
  187.                 {
  188.                     if (!player.Banned)
  189.                     {
  190.                         player.Banned = true;
  191.                         Console.ForegroundColor = ConsoleColor.Red;
  192.                         Console.WriteLine("ИГРОК ЗАБЛОКИРОВАН");
  193.                         Console.ResetColor();
  194.                     }
  195.                     else
  196.                     {
  197.                         player.Banned = false;
  198.                         Console.ForegroundColor = ConsoleColor.Red;
  199.                         Console.WriteLine("ИГРОК РАЗБЛОКИРОВАН");
  200.                         Console.ResetColor();
  201.                     }
  202.                 }
  203.             }
  204.         }
  205.     }
  206. }
Advertisement
Add Comment
Please, Sign In to add comment