Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Criei um jogo do número secreto com essa lógica porém removi o incremento de vidas e deixei só o decremento

int numeroIncialDeVidas = 5;
int numeroSecreto = 5;

do
{
    Console.WriteLine($"Você ainda tem {numeroIncialDeVidas}");
    Console.Write("Digite seu chute ");
    int chute = int.Parse(Console.ReadLine()!);
    if(chute == numeroSecreto)
    {
        Console.WriteLine("Você acertou a primeira. " +"\n");        
        Console.WriteLine("Acertou PARABÉNS");
        break;
    }
    else
    {
        Console.WriteLine("Errou -1 Vida "+"\n");
        numeroIncialDeVidas--;
    }
    
    Console.Write("Fim de jogo");
}while(numeroIncialDeVidas > 0);
1 resposta
solução!

Olá, Cauan, como vai?

É muito positivo ver sua iniciativa de alterar a lógica proposta para criar um jogo do número secreto, pois testar o comportamento dos operadores de decremento em laços de repetição é essencial para dominar a linguagem C#.

Seu código está funcional e a lógica das vidas reduzindo está correta, porém notei um detalhe visual na execução referente ao posicionamento da mensagem de encerramento. A instrução que exibe o fim de jogo foi inserida dentro do bloco de repetição, o que faz com que ela seja mostrada na tela toda vez que o jogador erra um palpite, antes mesmo do jogo acabar de fato.

Para ajustar esse comportamento e deixar a interação mais fluida, a dica é mover o comando Console.Write("Fim de jogo"); para fora das chaves que delimitam a estrutura do while. Dessa maneira, a mensagem de encerramento será processada apenas uma vez, logo após o jogador acertar o número secreto (pelo comando break) ou quando as vidas se esgotarem e o laço terminar naturalmente.

Obrigado por compartilhar sua solução conosco e o fórum segue à disposição.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!