int _senha = 42;
int _nivelDeAcesso = 5;
int tentativasRestantes = 3;
bool acessoLiberado = false;
void MostrarLogo()
{
Console.Clear();
Console.WriteLine(@"
░██████╗███████╗░█████╗░██╗░░░██╗██████╗░███████╗ ██╗░░░░░░█████╗░██████╗░
██╔════╝██╔════╝██╔══██╗██║░░░██║██╔══██╗██╔════╝ ██║░░░░░██╔══██╗██╔══██╗
╚█████╗░█████╗░░██║░░╚═╝██║░░░██║██████╔╝█████╗░░ ██║░░░░░███████║██████╦╝
░╚═══██╗██╔══╝░░██║░░██╗██║░░░██║██╔══██╗██╔══╝░░ ██║░░░░░██╔══██║██╔══██╗
██████╔╝███████╗╚█████╔╝╚██████╔╝██║░░██║███████╗ ███████╗██║░░██║██████╦╝
╚═════╝░╚══════╝░╚════╝░░╚═════╝░╚═╝░░╚═╝╚══════╝ ╚══════╝╚═╝░░╚═╝╚═════╝░");
if (!acessoLiberado)
Console.WriteLine($"\nTentativas restantes: {tentativasRestantes}");
}
while (tentativasRestantes > 0 && !acessoLiberado)
{
MostrarLogo();
Console.Write("Digite a senha: ");
if (int.TryParse(Console.ReadLine(), out int senha))
{
MostrarLogo();
Console.Write("Digite o nível de acesso: ");
if (int.TryParse(Console.ReadLine(), out int nivelDeAcesso))
{
if (senha == _senha && nivelDeAcesso >= _nivelDeAcesso)
{
acessoLiberado = true;
// Não precisa de break aqui, a condição do while cuidará disso
}
else
{
tentativasRestantes--;
Console.WriteLine("\nCredenciais inválidas!");
Thread.Sleep(1500);
}
}
else
{
Console.WriteLine("\nO nível de acesso deve ser numérico!");
Thread.Sleep(1500);
}
}
else
{
Console.WriteLine("\nA senha deve ser numérica!");
Thread.Sleep(1500);
}
}
MostrarLogo();
if (acessoLiberado)
Console.WriteLine("Acesso liberado. Bem-vindo!");
else
Console.WriteLine("Acesso negado. Limite de tentativas excedido.");
Console.ReadKey();