Antes de programar elaborei o seguinte fluxograma do fluxo do jogo, adicionei uma validação de entrada antes de validar o número informado e o número sorteado
//Jogo de adivinhar o número
Console.WriteLine(@"
▄▀█ █▀▄ █ █░█ █ █▄░█ █░█ █▀▀ █▀█ █▄░█ █░█ █▀▄▀█ █▀▀ █▀█ █▀█ █▀ █▀▀ █▀▀ █▀█ █▀▀ ▀█▀ █▀█
█▀█ █▄▀ █ ▀▄▀ █ █░▀█ █▀█ ██▄ █▄█ █░▀█ █▄█ █░▀░█ ██▄ █▀▄ █▄█ ▄█ ██▄ █▄▄ █▀▄ ██▄ ░█░ █▄█
");
var numeroSorteado = new Random().Next(1, 101);
int numeroInformado;
bool tentativaValida;
Console.WriteLine("Bem vindo ao jogo de adivinhação! Gerei um número aleatório entre 1 e 100, tente adivinhar qual é!");
do {
do {
Console.Write("\nDigite a sua tentativa: ");
string tentativa = Console.ReadLine() ?? string.Empty;
tentativaValida = validarTentativa(tentativa, out numeroInformado);
if (tentativaValida == false)
{
Console.WriteLine("O valor digitado não é válido, digite um número entre 1 e 100!");
}
} while (!tentativaValida);
switch (numeroInformado) {
case int n when n > numeroSorteado:
Console.WriteLine("Você errou! O número sorteado é menor!");
break;
case int n when n < numeroSorteado:
Console.WriteLine("Você errou! O número sorteado é maior!");
break;
}
} while (numeroInformado != numeroSorteado);
Console.WriteLine("Parabéns você adivinhou o número secreto (" + numeroSorteado + ")! Até a próxima!");
bool validarTentativa(string tentativa, out int numeroValidado)
{
if (int.TryParse(tentativa, out int tentativaInt))
{
if (tentativaInt > 0 && tentativaInt < 101) {
numeroValidado = tentativaInt;
return true;
}
else {
numeroValidado = tentativaInt;
return false;
}
}
else {
numeroValidado = tentativaInt;
return false;
}
}