查看解决方案以添加使游戏可玩的方法

已完成

以下代码是上一单元中所述挑战的一种可能的解决方案。

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!";
}

此代码仅仅是“一种可能的解决方案”,因为你可能已在不同的点添加了换行符,以不同的方式返回了值,或者你的代码格式可能不同。

无论代码存在什么样的细微差异,在运行代码时,都应看到类似于以下内容的输出:

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

如果完成了这个挑战,恭喜! 继续进行下一个单元中的知识检查。

重要

如果在完成此项挑战时遇到问题,则请先回顾前面的几个单元,然后再继续。 我们在其他模块中讨论的所有新内容都将取决于你对此模块中所介绍内容的理解情况。