5
respostas

[Dúvida] Problema na exibição do titulo

Ao exibir o nome o logo do programa acaba repetindo -o ficando Como resolvo isso?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

5 respostas

Oi, Ivan. Tudo certo?

Para poder te ajudar melhor, você poderia me fornecer o código do seu projeto? Assim consigo analisar melhor o que pode estar acontecendo e te ajudar de forma mais precisa.

Fico no aguardo e à disposição :)

Tirei , omiti, algumas linhas por causa do numero dos caracterers

string mensagemDeBoasVindas = "Boas vindas ao Screen Sound";
//List<string> ListaDasBandas = new List<string>(); // Cria uma listar vazia para bandas
//List<string>  ListaDasBandas = new List<string>{"B-52","U2"}; ///Cria uma lista com conteúdo para bandas

Dictionary<string, List<int>>bandasRegistradas = new Dictionary<string, List<int>>();//Cria um dicionario
bandasRegistradas.Add("Linkin Park", new List<int> { 10, 8, 6 });//Registra no dicionario com notas
bandasRegistradas.Add("The Beatles", new List<int> ());//Registro no dicionario sem notas

void ExibirLogo()
{
    // a @,Verbatim Lite(Verbatim literal), mostra a string completa
    Console.WriteLine(@"██████╗░█████╗░██████╗░███████╗███████╗███╗░░██╗  ░██████╗░█████╗░██╗░░░██╗███╗░░██╗██████╗░
██╔════╝██╔══██╗██╔══██╗██╔════╝██╔════╝████╗░██║  ██╔════╝██╔══██╗██║░░░██║████╗░██║██╔══██╗
╚█████╗░██║░░╚═╝██████╔╝█████╗░░█████╗░░██╔██╗██║  ╚█████╗░██║░░██║██║░░░██║██╔██╗██║██║░░██║
░╚═══██╗██║░░██╗██╔══██╗██╔══╝░░██╔══╝░░██║╚████║  ░╚═══██╗██║░░██║██║░░░██║██║╚████║██║░░██║
██████╔╝╚█████╔╝██║░░██║███████╗███████╗██║░╚███║  ██████╔╝╚█████╔╝╚██████╔╝██║░╚███║██████╔╝
╚═════╝░░╚════╝░╚═╝░░╚═╝╚══════╝╚══════╝╚═╝░░╚══╝  ╚═════╝░░╚════╝░░╚═════╝░╚═╝░░╚══╝╚═════╝░");
    exibirTituloDaOpcao($"Olá, {0}!, {mensagemDeBoasVindas}");
}
void ExibirOpcoesDoMenu(){
    ExibirLogo();
    Console.WriteLine("\nDigite 1 para registrar uma banda");
    Console.WriteLine("Digite 2 para mostrar todas as bandas");
    Console.WriteLine("Digite 3 para avaliar uma banda");
    Console.WriteLine("Digite 4 para exibir a média de uma banda");
    Console.WriteLine("Digite -1 para sair");
    Console.Write("\nDigite sua opção: ");
    string opcaoEscolhida=Console.ReadLine()!;
    int opcaoEscolhidaNumerica = int.Parse(opcaoEscolhida); 
    switch (opcaoEscolhidaNumerica){  
}
void RegistrarBanda(){
    Console.Clear();//Limpa a Tela
    exibirTituloDaOpcao("Registro das bandas");
    Console.Write("Digite o nome da Banda que deseja registrar: ");
    string nomeDaBanda = Console.ReadLine()!;
    //ListaDasBandas.Add(nomeDaBanda);//Adiciona nome da Banda na lista
    bandasRegistradas.Add(nomeDaBanda, new List<int>());
    Console.WriteLine($"A banda {nomeDaBanda} foi registrada");
    Thread.Sleep(2000);
    Console.Clear();
    ExibirOpcoesDoMenu();
}
void MostrarBandasRegistradas(){
    Console.Clear();
    exibirTituloDaOpcao("Registro das bandas");
      ///FOREACH para dicinario
     foreach (string banda in bandasRegistradas.Keys)
    {
        Console.WriteLine($"Banda: {banda}");
    }
    Console.WriteLine("Digite uma tecla para voltar ao menu principal");
    Console.ReadKey();
    Console.Clear();
    ExibirOpcoesDoMenu();    
}
void exibirTituloDaOpcao(string titulo)
{
    int quantidadeDeLetras = titulo.Length;
    string asteriscos = string.Empty.PadLeft(quantidadeDeLetras, '*');
    Console.WriteLine(asteriscos);
    Console.WriteLine(titulo);
    Console.WriteLine(asteriscos + "\n"); 
}
void  AvaliarUmaBanda()
{
     Console.Clear();
    exibirTituloDaOpcao("Avaliar Banda");
    Console.Write("Digite o nome da Banda que deseja Avaliar: ");
    string nomeDaBanda = Console.ReadLine()!;
    if (bandasRegistradas.ContainsKey(nomeDaBanda))
    {
        Console.Write($"qual a nota {nomeDaBanda} merece: ");
        int nota = int.Parse(Console.ReadLine()!);
        bandasRegistradas[nomeDaBanda].Add(nota);
        Console.WriteLine($"A nota {nota} foi registrada com sucesso para a {nomeDaBanda} ");
        Thread.Sleep(4000);
        Console.Clear();
        ExibirOpcoesDoMenu();
    }
    else
    {
        Console.WriteLine($"\nA {nomeDaBanda} não foi encontrada");
        Console.WriteLine($"Digite uma tecla para voltar ao menu principal");
        Console.ReadKey();
        Console.Clear();
        ExibirOpcoesDoMenu();
    }   
}
void exibirMedia()
{
    Console.Clear();
    exibirTituloDaOpcao("Exibir Media das Bandas");
    Console.Write("Digite o nome da Banda que deseja Avaliar: ");
    string nomeDaBanda = Console.ReadLine()!;
    if (bandasRegistradas.ContainsKey(nomeDaBanda))
    {   //Se sim ,atribui o valor a lista notasDaBanda e imprime a media
        List<int> notasDaBanda = bandasRegistradas[nomeDaBanda];
        Console.WriteLine($"\nA média da banda {nomeDaBanda} é {notasDaBanda.Average()}.");//Average()Caucula a media
        Console.WriteLine("Digite uma tecla para voltar ao menu principal.");
        Console.ReadKey();
        Console.Clear();
        ExibirOpcoesDoMenu();
    }
    else
    {
        Console.WriteLine($"\nA {nomeDaBanda} não foi encontrada");
        Console.WriteLine($"Digite uma tecla para voltar ao menu principal");
        Console.ReadKey();
        Console.Clear();
        ExibirOpcoesDoMenu();
    }
}
ExibirOpcoesDoMenu();

Oi, Ivan.

Rodei o código que você enviou e por aqui funcionou normalmente. Para conseguirmos entender melhor o que está acontecendo, você poderia subir o projeto completo em um repositório no GitHub? Assim consigo reproduzir exatamente o mesmo ambiente que você está utilizando. Além disso, faça um teste rodando o programa em outro terminal para verificar se o comportamento se mantém.

Fico no aguardo do repositório, e qualquer dúvida o fórum está à disposição.

Perdão pela demora

https://github.com/itzvan/ScreenSound/blob/main/Program.cs

Oi Ivan.

Executei novamente o código e realmente o problema não ocorre na execução por aqui. Esse comportamento pode estar relacionado a alguma caracteristica específica do terminal ou ambiente onde você está executando.

Captura de tela de um terminal de programação exibindo uma mensagem de boas-vindas para "Som da tela" em arte ASCII colorida e opções de menu

Sugiro que teste a execução em diferentes terminais, como Command Prompt, PowerShell e Git Bash, por exemplo, para verificar se o problema persiste. Como alternativa temporária, você pode substituir o verbatim por uma string simples para isolar se o problema está relacionado à renderização dos caracteres especiais.

Se o texto simples não duplicar, o problema provavelmente é o terminal interpretando múltiplos caracteres especiais de forma diferente.