- 사용자로부터 문자를 입력받아 숨겨진 단어를 맞추는 행맨 게임을 작성하세요. 사용자가 단어의 모든 문자를 맞추거나 주어진 기회 내에 맞추지 못할 때까지 반복합니다.
- 게임 설명: 행맨 게임은 사용자가 단어를 추측하는 게임입니다. 사용자는 알파벳을 하나씩 입력하고, 맞출 때마다 단어의 해당 위치에 문자가 표시됩니다. 틀릴 경우, 기회가 줄어듭니다.
- 배열 사용: char[] 배열을 사용하여 단어를 저장하고, 추측된 문자를 저장합니다.
- 반복문 사용: 게임은 사용자가 단어를 맞추거나 기회가 끝날 때까지 반복됩니다.
- 조건문 사용: 각 입력된 문자가 단어에 포함되는지 확인합니다.
사용 변수 설명
- secretWord: 맞춰야 할 단어입니다. 예제에서는 "hangman"으로 설정되어 있습니다.
- guessWord: 사용자가 맞춘 문자를 저장하는 문자 배열로, 초기에는 언더스코어(_)로 채워져 있습니다.
- attempts: 사용자가 틀릴 수 있는 기회의 수로, 초기에는 6으로 설정되어 있습니다.
- wordGuessed: 사용자가 단어를 모두 맞췄는지를 나타내는 불리언 변수입니다.
저는 팀원과 진도가 달라서 혼자 진행했습니다.
char[] secretWord = "hangman".ToCharArray();
char[] guessWord = new char[secretWord.Length];
int attempts = 6;
bool wordGuessed = false;
int wordCount = guessWord.Length;
for (int i = 0; i < guessWord.Length; i++) //초기화
{
guessWord[i] = '_';
}
while (attempts > 0 && !wordGuessed)
{
Console.Write($"{attempts}번 안에 맞추세요! : ");
Console.WriteLine($"{new string(guessWord)}");
Console.WriteLine("알파벳을 입력하세요 : ");
char input;
bool inputSuccess = char.TryParse(Console.ReadLine(), out input);
bool isCorrect = false;
if (!inputSuccess)
{
Console.WriteLine("\n알파벳을 하나씩 입력하세요.");
continue;
}
for (int i = 0; i < secretWord.Length; i++)
{
if (secretWord[i] == input)
{
guessWord[i] = input;
secretWord[i] = '0';
isCorrect = true;
--wordCount;
}
}
if (wordCount == 0)
{
Console.WriteLine($"{new string(guessWord)}. 정답입니다!");
return;
}
if (!isCorrect)
{
attempts--;
}
Console.Clear();
}
Console.WriteLine("실패!");
아직은 아무것도 안보고 혼자 하기에는 무리가 있어서 구글링으로 도움을 받았습니다.
'내배캠과제' 카테고리의 다른 글
[내배캠] 8. 숫자 야구 게임 2025-01-21 (2) | 2025.01.21 |
---|---|
[내배캠] 6. 배열 요소의 최대값과 최소값 찾기 2025-01-20 (0) | 2025.01.20 |
[내배캠] 5. 이중 반복문을 사용한 구구단 출력 2025-01-20 (0) | 2025.01.20 |
[내배캠] 4. 숫자 맞추기 게임 2025-01-17 (0) | 2025.01.17 |
[내배캠] 3. C# 팩토리얼 계산 2025-01-17 (0) | 2025.01.17 |