Revise a solução para adicionar métodos para tornar o jogo jogável
O seguinte código é uma solução possível para o desafio da unidade anterior.
Random random = new Random();
Console.WriteLine("Would you like to play? (Y/N)");
if (ShouldPlay())
{
PlayGame();
}
bool ShouldPlay()
{
string response = Console.ReadLine();
return response.ToLower().Equals("y");
}
void PlayGame()
{
var play = true;
while (play) {
var target = GetTarget();
var roll = RollDice();
Console.WriteLine($"Roll a number greater than {target} to win!");
Console.WriteLine($"You rolled a {roll}");
Console.WriteLine(WinOrLose(roll, target));
Console.WriteLine("\nPlay again? (Y/N)");
play = ShouldPlay();
}
}
int GetTarget()
{
return random.Next(1, 6);
}
int RollDice()
{
return random.Next(1, 7);
}
string WinOrLose(int roll, int target)
{
if (roll > target)
{
return "You win!";
}
return "You lose!";
}
Esse código é apenas "uma solução possível" porque você pode ter adicionado feeds de linha em pontos diferentes, retornado valores de forma diferente ou formatado o código de forma diferente.
Independentemente de pequenas diferenças de código, quando você executa o código, você deve ver uma saída semelhante à seguinte:
Would you like to play? (Y/N)
Y
Roll a number greater than 2 to win!
You rolled a 1
You lose!
Play again? (Y/N)
Y
Roll a number greater than 3 to win!
You rolled a 5
You win!
Play again? (Y/N)
Y
Roll a number greater than 2 to win!
You rolled a 3
You win!
Play again? (Y/N)
N
Se completou este desafio, parabéns! Avance para a prova de aferição na próxima unidade.
Importante
Se você teve problemas para concluir este desafio, considere revisar as unidades anteriores antes de continuar. Todas as ideias novas que discutiremos noutros módulos dependerão da compreensão das ideias apresentadas neste módulo.