Oi, Vinicius! Tudo bem?
O problema que você está tendo na mostragem dos resultados é porque você definiu a forma em que seria mostrado as informações fora da estrutura de repetição, isso na definição das variáveis palavraTentativa
e mensagemTentativas
. Por conta disso, as alterações que ocorriam dentro do do while
não afetavam o resultado.
Para resolver isso você pode criar essas variáveis de mensagem dentro do do while
. Segue um exemplo:
Random aleatorio = new Random();
int numeroSecreto = aleatorio.Next(1, 100);
int numeroMinimo = 1;
int numeroMaximo = 100;
int tentativas = 1;
do
{
Console.Write("\nDigite um número entre " + numeroMinimo + " e " + numeroMaximo + ": ");
int chute = int.Parse(Console.ReadLine());
if (chute == numeroSecreto)
{
string palavraTentativa = tentativas > 1 ? "tentativas" : "tentativa";
string mensagemTentativas = "Parabéns, você descobriu o número secreto com " + tentativas + palavraTentativa;
Console.WriteLine(mensagemTentativas);
break;
} else if (chute < numeroSecreto)
{
Console.WriteLine("O número secreto é menor que o chute");
} else
{
Console.WriteLine("O número secreto é maior que o chute");
}
tentativas++;
} while (true);
Nessa solução, optei por fazer a criação dessas variáveis dentro da condição de saída, já que é esse o momento em que a mensagem será transmitida.
Espero ter ajudado e caso tenha mais problemas ou dúvidas estarei à disposição.
Bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.