Skip to content

Instantly share code, notes, and snippets.

@talatari
Forked from JUGADORUS/HW41
Last active November 14, 2023 07:50
Show Gist options
  • Save talatari/899efe373427c53531d39a208427a0cf to your computer and use it in GitHub Desktop.
Save talatari/899efe373427c53531d39a208427a0cf to your computer and use it in GitHub Desktop.
class Program
{
static void Main(string[] args)
{
DataBase dataBase = new DataBase();
dataBase.Work();
}
}
class Player
{
private int _uniqueCode;
private string _name;
private int _level;
private bool _banFlag;
public int UniqueCode { get; private set; }
public string Name { get; private set; }
public int Level { get; private set; }
public bool BanFlag { get; private set; }
public Player(int uniqueCode, string name, int level, bool banFlag)
{
_uniqueCode = uniqueCode;
_name = name;
_level = level;
_banFlag = banFlag;
}
public void ChangeBanStatusTrue(List<Player> listOfPlayers, int index)
{
listOfPlayers[index].BanFlag = true;
}
public void ChangeBanStatusFalse(List<Player> listOfPlayers, int index)
{
listOfPlayers[index].BanFlag = true;
}
}
class DataBase
{
private List<Player> _players = new List<Player>();
public List<Player> Players { get; private set; }
public void Work()
{
const string CommandAdd = "1";
const string CommandBan = "2";
const string CommandUnban = "3";
const string CommandDeletePlayer = "4";
const string Exit = "5";
string userChoice;
bool isWorking = true;
while (isWorking == true)
{
for (int i = 0; i < _players.Count; i++)
{
Console.WriteLine($"Игрок 1. Уникальный код: {_players[i].UniqueCode} Имя: {_players[i].Name} Уровень: {_players[i].Level} Состояние бана: {_players[i].BanFlag}");
}
Console.WriteLine($"{CommandAdd} - добавить игрока\n{CommandBan} - бан игрока по уникальному номеру\n{CommandUnban} - разбанить игрока по уникальному номеру\n{CommandDeletePlayer} - удалить игрока по уникальному номеру \n{Exit} - выход");
userChoice = Console.ReadLine();
switch (userChoice)
{
case CommandAdd:
AddPlayer();
Console.Clear();
break;
case CommandBan:
BanPlayer();
break;
case CommandUnban:
UnbanPlayer();
break;
case CommandDeletePlayer:
DeletePlayer();
break;
case Exit:
isWorking = false;
break;
}
}
}
public void AddPlayer()
{
Console.Clear();
Random random = new Random();
int uniqueCode = random.Next(0, 100);
Console.WriteLine("Введите ваш ник:");
string name = Console.ReadLine();
Console.WriteLine("Введите ваш уровень:");
int level = Convert.ToInt32(Console.ReadLine());
bool banFlag = false;
Player player = new Player(uniqueCode, name, level, banFlag);
_players.Add(player);
}
public void BanPlayer()
{
Console.WriteLine("Введите уникальный номер игрока:");
int uniqueCode = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < Players.Count; i++)
{
if (uniqueCode == Players[i].UniqueCode)
{
if (Players[i].BanFlag == false)
{
Console.WriteLine($"Игрок {Players[i].Name} забанен ");
Players[i].ChangeBanStatusTrue(Players, i);
}
}
else
{
Console.WriteLine($"Игрок с данным номером не найден");
}
}
}
public void UnbanPlayer()
{
Console.WriteLine("Введите уникальный номер игрока:");
int uniqueCode = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < Players.Count; i++)
{
if (uniqueCode == Players[i].UniqueCode)
{
if (Players[i].BanFlag == true)
{
Console.WriteLine($"Игрок {Players[i].Name} разбанен");
Players[i].ChangeBanStatusFalse(Players, i);
}
else
{
Console.WriteLine($"Игрок с данным номером не найден");
}
}
}
}
public void DeletePlayer()
{
Console.WriteLine("Введите уникальный номер игрока:");
int uniqueCode = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < Players.Count; i++)
{
if (uniqueCode == Players[i].UniqueCode)
{
Console.WriteLine($"Игрок {Players[i].Name} удалён");
Players.RemoveAt(i);
}
else
{
Console.WriteLine("Игрок с данным номером не найден");
}
}
}
public void FindPlayerWithUniqueCode()
{
Console.WriteLine("Введите уникальный номер игрока:");
int uniqueCode = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < Players.Count; i++)
{
if (uniqueCode == Players[i].UniqueCode)
{
//Console.WriteLine($"Игрок {Players[i].Name}");
//function()
}
else
{
Console.WriteLine("Игрок с данным номером не найден");
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment