솔루션을 검토하여 게임을 플레이할 수 있도록 하는 메서드 추가

완료됨

다음 코드는 앞 단원의 과제에 대한 가능한 한 가지 솔루션입니다.

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

이 과제를 완료했으면 축하합니다! 다음 단원의 지식 점검을 계속 진행하세요.

중요

이 과제를 완료하는 데 문제가 있는 경우 계속 진행하기 전에 이전 단원을 복습하는 것이 좋습니다. 다른 모듈에서 설명하는 새로운 내용을 모두 이해하려면 이 모듈의 내용을 숙지하고 있어야 합니다.