숫자 맞추기 게임을 작성하세요.
- 컴퓨터가 1부터 100 사이의 숫자를 선택하면 사용자가 그 숫자를 맞추는 게임을 구현하세요.
- 사용자가 숫자를 입력하면 컴퓨터는 숫자가 더 크거나 작은지 힌트를 줍니다.
- 맞출 때까지 반복합니다.
문제가 요구하는 바는 다음과 같다.
n으로 선언.n과 비교n과 같아질 때까지 반복먼저, 변수 n을 랜덤한 값으로 설정하겠다.
Random random = new Random();
int n = random.Next(101);
사용자가 입력한 값을 a로 선언하고, a가 n과 같아질 때까지 반복하겠다.
for (int a; a == n;)
{
Console.WriteLine("Enter your Guess (1-100):");
Convert.ToInt32(Console.ReadLine());
}
a가 n보다 작을 때와 같을 때에 각기 서로 다른 출력을 하도록 조건문을 작성한다.
if (a<n)
{
Console.WriteLine("Too Low!");
}
else if (a>n)
{
Console.WriteLine("Too High!");
}
최종 코드는 다음과 같다.
Random random = new Random();
int n = random.Next(101);
for (int a; a != n;)
{
Console.WriteLine("Enter your Guess (1-100):");
Convert.ToInt32(Console.ReadLine());
if (a<n)
{
Console.WriteLine("Too Low!");
}
else if (a>n)
{
Console.WriteLine("Too High!");
}
}
하지만 이렇게 작성했더니 몇가지 문제가 생겼다.
Convert.ToInt32(Console.ReadLine());의 입력값이 사라진다.따라서
a=Convert.ToInt32(Console.ReadLine());라고 저장한다.이를 수정한 뒤 최종 완성된 코드는 다음과 같다.
Random random = new Random();
int n = random.Next(101);
int a = 0;
while (a != n)
{
Console.WriteLine("Enter your Guess (1-100):");
a = Convert.ToInt32(Console.ReadLine());
if (a<n)
{
Console.WriteLine("Too Low!");
}
else if (a>n)
{
Console.WriteLine("Too High!");
}
else
{
Console.WriteLine("Correct");
}
}
여기서 100 이상의 숫자를 입력하거나 숫자가 아닌 값을 입력하면 다시 입력하도록 코드를 추가해보겠다.
Random random = new Random();
int n = random.Next(101);
int a = 0;
while (a != n)
{
Console.WriteLine("Enter your Guess (1-100):");
string input = Console.ReadLine();
bool isNum = int.TryParse(input, out a);
if (!isNum)
{
Console.WriteLine("Please enter a number!");
continue;
}
if (a < 1 || a > 100)
{
Console.WriteLine("Please enter a number between 1 and 100!");
continue;
}
if (a<n)
{
Console.WriteLine("Too Low!");
}
else if (a>n)
{
Console.WriteLine("Too High!");
}
else
{
Console.WriteLine("Correct");
}
}
이 코드에서 추가로 몇 번 시도했는지를 카운트하는 코드를 추가해보겠다. 이 코드를 추가하기 위해서는
b를 선언한다.b에 1을 더한다.최종 완성된 코드는 다음과 같다.
Random random = new Random();
int n = random.Next(101);
int a = 0;
int b = 0;
while (a != n)
{
Console.WriteLine("Enter your Guess (1-100):");
string input = Console.ReadLine();
bool isNum = int.TryParse(input, out a);
if (!isNum)
{
Console.WriteLine("Please enter a number!");
continue;
}
if (a < 1 || a > 100)
{
Console.WriteLine("Please enter a number between 1 and 100!");
continue;
}
b++;
if (a<n)
{
Console.WriteLine("Too Low!");
}
else if (a>n)
{
Console.WriteLine("Too High!");
}
else
{
Console.WriteLine("Correct" + b + "번 시도하셨습니다.");
}
}
어떻게 출력되는지 확인해보겠다.

문제에서 요구한 것 이외에도 여러 기능을 구현해보며 C#의 응용력을 늘릴 수 있었다.