Skip to content

Instantly share code, notes, and snippets.

@Attosius
Created December 8, 2025 19:30
Show Gist options
  • Select an option

  • Save Attosius/f2c4e93b2383af4a0527a29c16857035 to your computer and use it in GitHub Desktop.

Select an option

Save Attosius/f2c4e93b2383af4a0527a29c16857035 to your computer and use it in GitHub Desktop.
ДЗ: База данных игроков
using System;
using System.Collections.Generic;
using System.Linq;
namespace IJuniorTasks
{
internal class Program
{
static void Main(string[] args)
{
const string CommandAddPlayer = "1";
const string CommandRemovePlayer = "2";
const string CommandBan = "3";
const string CommandUnban = "4";
const string CommandShow = "5";
const string CommandExit = "6";
bool isWork = true;
var database = new DatabasePlayers();
while (isWork)
{
Console.WriteLine($"\n\nВведите команду:");
Console.WriteLine($"{CommandAddPlayer}. Добавить игрока");
Console.WriteLine($"{CommandRemovePlayer}. Удалить игрока");
Console.WriteLine($"{CommandBan}. Забанить игрока");
Console.WriteLine($"{CommandUnban}. Разбанить игрока");
Console.WriteLine($"{CommandShow}. Показать игроков");
Console.WriteLine($"{CommandExit}. Выход");
Console.WriteLine();
var command = Console.ReadLine();
switch (command)
{
case CommandAddPlayer:
database.AddPlayer();
break;
case CommandRemovePlayer:
database.RemovePlayer();
break;
case CommandBan:
database.BanPlayer();
break;
case CommandUnban:
database.UnbanPlayer();
break;
case CommandShow:
database.ShowAll();
break;
case CommandExit:
isWork = false;
break;
default:
Console.WriteLine($"Некорректная команда!");
break;
}
}
}
}
public class DatabasePlayers
{
private readonly List<Player> _playerList = new();
public void AddPlayer()
{
Console.WriteLine($"Введите ник игрока:");
var nick = Console.ReadLine();
var id = GetNewId();
var player = new Player(id, nick, Player.DefaultLevel);
_playerList.Add(player);
Console.WriteLine($"Игрок {nick} успешно добавлен. Id: {id}");
}
public void RemovePlayer()
{
var player = GetPlayerById();
if (player == null)
{
return;
}
_playerList.Remove(player);
Console.WriteLine($"Игрок c Id {player.Id} успешно удален");
}
public void BanPlayer()
{
var player = GetPlayerById();
if (player == null)
{
return;
}
player.IsBan = true;
Console.WriteLine($"Игрок c Id {player.Id} успешно забанен");
}
public void UnbanPlayer()
{
var player = GetPlayerById();
if (player == null)
{
return;
}
player.IsBan = false;
Console.WriteLine($"Игрок c Id {player.Id} успешно разбанен");
}
public void ShowAll()
{
var index = 0;
foreach (var player in _playerList)
{
index++;
Console.WriteLine($"{index}. {player}");
}
}
private int GetNewId()
{
if (_playerList.Count == 0)
{
return 1;
}
var maxId = _playerList.Max(o => o.Id);
return maxId + 1;
}
private Player GetPlayerById()
{
Console.WriteLine("Введите id игрока:");
var idString = Console.ReadLine();
if (!int.TryParse(idString, out var id))
{
Console.WriteLine($"Некорректный Id: {id}");
return null;
}
var player = _playerList.FirstOrDefault(o => o.Id == id);
if (player == null)
{
Console.WriteLine($"Игрок c Id {id} не найден");
return null;
}
return player;
}
}
public class Player
{
public static int DefaultLevel = 0;
public int Id {get;}
public string Nick {get; set; }
public int Level { get; set; }
public bool IsBan { get; set; }
public Player(int id, string nick, int level)
{
Id = id;
Nick = nick;
Level = level;
}
public override string ToString()
{
return $"Id: {Id},\t Nick: {Nick.PadRight(15)}, Level: {Level},\t IsBan: {IsBan}";
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment