TargeTPoweR

База данных игроков

Apr 6th, 2020
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.25 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 Tasks
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. bool exit = true;
  14. DataBase dataBase = new DataBase(new Player[] { new Player(1, 5, "Penetrator228", false), new Player(2, 10, "CaseyRayback", false), new Player(3, 8, "Jora007", true) });
  15.  
  16. while (exit)
  17. {
  18. dataBase.ShowAllPlayersInfo();
  19. Console.WriteLine(" ");
  20. Console.WriteLine("\nЧто вы хотите сделать?");
  21. Console.WriteLine("1 - добавить игрока.");
  22. Console.WriteLine("2 - забанить игрока.");
  23. Console.WriteLine("3 - разбанить игрока.");
  24. Console.WriteLine("4 - удалить игрока.");
  25. Console.WriteLine("5 - выход.");
  26.  
  27. int adminInput = Convert.ToInt32(Console.ReadLine());
  28.  
  29. switch (adminInput)
  30. {
  31. case 1:
  32. dataBase.AddPlayer();
  33. break;
  34. case 2:
  35. dataBase.BanPlayer();
  36. break;
  37. case 3:
  38. dataBase.UnbanPlayer();
  39. break;
  40. case 4:
  41. dataBase.DeletePlayer();
  42. break;
  43. case 5:
  44. exit = false;
  45. break;
  46. }
  47. Console.Clear();
  48. }
  49. }
  50. }
  51.  
  52. class Player
  53. {
  54. public int SerialNumber { get; set; }
  55. public int Level { get; private set; }
  56. public string Nickname { get; private set; }
  57. public bool Banned { get; set; }
  58.  
  59. public Player(int serialNumber, int level, string nickName, bool banned)
  60. {
  61. SerialNumber = serialNumber;
  62. Level = level;
  63. Nickname = nickName;
  64. Banned = banned;
  65. }
  66.  
  67. public void ShowPlayerInfo()
  68. {
  69. Console.Write(SerialNumber + " " + Nickname + " " + "Уровень: " + Level);
  70. if (Banned == true)
  71. {
  72. Console.Write(" Забанен");
  73. }
  74. else
  75. {
  76. Console.Write(" Не забанен");
  77. }
  78. }
  79. }
  80.  
  81. class DataBase
  82. {
  83. private Player[] _players;
  84.  
  85. public DataBase(Player[] players)
  86. {
  87. _players = players;
  88. }
  89.  
  90. public void ShowAllPlayersInfo()
  91. {
  92. Console.WriteLine("Список игроков: ");
  93. Console.WriteLine(" ");
  94. for (int i = 0; i < _players.Length; i++)
  95. {
  96. Console.WriteLine(" ");
  97. _players[i].ShowPlayerInfo();
  98. }
  99. }
  100.  
  101. public void AddPlayer()
  102. {
  103. Array.Resize(ref _players, _players.Length + 1);
  104. int newSerialNumber = _players.Length;
  105. int newLevel = 1;
  106. Console.WriteLine("Введите никнейм нового игрока: ");
  107. string newNickname = Console.ReadLine();
  108. bool newBanned = false;
  109. _players[_players.Length - 1] = new Player(newSerialNumber, newLevel, newNickname, newBanned);
  110. }
  111.  
  112. public void BanPlayer()
  113. {
  114. Console.WriteLine("Введите порядковый номер игрока, которого хотите забанить: ");
  115. int playerForBan = Convert.ToInt32(Console.ReadLine());
  116.  
  117. if (_players[playerForBan - 1].Banned == true)
  118. {
  119. Console.WriteLine("Этот игрок уже забанен.");
  120. }
  121. else
  122. {
  123. _players[playerForBan - 1].Banned = true;
  124. Console.WriteLine("Готово, впаяли ему бан по самые помидоры.");
  125. }
  126. }
  127.  
  128. public void UnbanPlayer()
  129. {
  130. Console.WriteLine("Введите порядковый номер игрока, которого хотите разбанить: ");
  131. int playerForBan = Convert.ToInt32(Console.ReadLine());
  132.  
  133. if (_players[playerForBan - 1].Banned == false)
  134. {
  135. Console.WriteLine("Этот игрок не забанен.");
  136. Console.WriteLine("Нажмите любую кнопку для продолжения.");
  137. Console.ReadKey();
  138. }
  139. else
  140. {
  141. _players[playerForBan - 1].Banned = false;
  142. Console.WriteLine("Вы разбанили " + _players[playerForBan - 1].Nickname);
  143. Console.WriteLine("Нажмите любую кнопку для продолжения.");
  144. Console.ReadKey();
  145. }
  146. }
  147.  
  148. public void DeletePlayer()
  149. {
  150. Console.WriteLine("Введите порядковый номер удаляемого игрока: ");
  151. int removablePlayerSerialNumber = Convert.ToInt32(Console.ReadLine());
  152.  
  153. if (removablePlayerSerialNumber < 1 || removablePlayerSerialNumber > _players.Length)
  154. {
  155. Console.WriteLine("Игрока с таким порядковым номером не существует!");
  156. }
  157. else
  158. {
  159. Player[] newPlayers = new Player[_players.Length - 1];
  160.  
  161. for (int i = 0; i < _players.Length; i++)
  162. {
  163. if (i < (removablePlayerSerialNumber - 1))
  164. {
  165. newPlayers[i] = _players[i];
  166. }
  167. else if (i > (removablePlayerSerialNumber - 1))
  168. {
  169. newPlayers[i - 1] = _players[i];
  170. newPlayers[i - 1].SerialNumber-= 1;
  171. }
  172. }
  173. _players = newPlayers;
  174. }
  175. }
  176. }
  177. }
Add Comment
Please, Sign In to add comment