Нужно сделать метод бана и из бана игроков в классе Юзер
using System;
using System.Collections.Generic;
namespace ConsoleApp1
{
// Помогите я ТУПОЙ !
class Program
{
static void Main(string[] args)
{
bool working = true;
int userInput = 0;
UserBase userBase = new UserBase();
while (working)
{
Console.WriteLine("1- Показать базу игроков");
Console.WriteLine("2 - Добавить нового игрока в базу");
Console.WriteLine("3 - Удалить игрока по номеру в базе");
Console.WriteLine("4 - бан игрока по номеру в базе");
Console.WriteLine("5 - убрать бан игрока по номеру в базе");
Console.WriteLine("0 - Выход");
userInput = Convert.ToInt32(Console.ReadLine());
switch (userInput)
{
case 1:
Console.Clear();
userBase.ShowAllUsers();
break;
case 2:
Console.Clear();
Console.WriteLine("Введите имя нового игрока");
string userName = Console.ReadLine();
Console.WriteLine("Введите уровень нового игрока");
int userLevel = Convert.ToInt32(Console.ReadLine());
userBase.AddNewUser(userName, userLevel, false);
Console.Clear();
break;
case 3:
Console.WriteLine("Введите номер игрока которого нужно удалить из базы");
int deliteUser = Convert.ToInt32(Console.ReadLine());
userBase.DeliteUser(deliteUser);
break;
case 4:
Console.WriteLine("Введите номер игрока которого нужно банить");
int banUser = Convert.ToInt32(Console.ReadLine());
userBase.BanUser(banUser);
Console.Clear();
break;
case 5:
Console.WriteLine("Введите номер игрока которого нужно убрать бан");
int unBanUser = Convert.ToInt32(Console.ReadLine());
userBase.UnBanUser(unBanUser);
Console.Clear();
break;
case 0:
working = false;
break;
}
}
}
class UserBase
{
private List<User> _users = new List<User>();
public void AddNewUser(string name, int lvl, bool ban)
{
_users.Add(new User(name, lvl, ban));
}
public void ShowAllUsers()
{
Console.SetCursorPosition(0, 10);
for (int i = 0; i < _users.Count; i++)
{
if (_users[i]._ban == true)
{
Console.WriteLine($"№-{i + 1} - Имя игрока - {_users[i]._name} - Уровень игрока - {_users[i]._level} - Игрок в бане");
}
else
{
Console.WriteLine($"№-{i + 1} - Имя игрока - {_users[i]._name} - Уровень игрока - {_users[i]._level} - Игрок не в бане");
}
}
Console.SetCursorPosition(0, 0);
}
public void DeliteUser(int userNumber)
{
_users.Remove(_users[userNumber - 1]);
}
public void BanUser(int userNumber)
{
// У меня они тут но из за privite не вижу в другом классе
}
public void UnBanUser(int userNumber)
{
// У меня они тут но из за privite не вижу в другом классе
}
}
class User
{
public string _name { get; private set; }
public int _level { get; private set; }
public bool _ban
{
private set
{
}
get
{
return _ban;
}
}
// А по идеи эти 2 метода должны быть тут .
public User(string name, int level, bool ban)
{
_name = name;
_level = level;
_ban = ban;
}
public User()
{
}
}
}
}
Ответы (1 шт):
Автор решения: vp_arth
→ Ссылка
class User {
// ...
public void Ban() {_ban = true;}
public void Unban() {_ban = false;}
}
class UserBase {
// ...
public void Ban(int id) {_users[id-1].Ban();}
public void Unban(int id) {_users[id-1].Unban();}
}