[C#]행멘 게임 구현
구현 목표
행멘 게임은 사용자가 문자를 하나씩 입력하여 숨겨진 단어를 맞추는 게임이다.
사용자는 알파벳을 하나씩 입력하고, 맞출 때마다 단어의 해당 위치에 문자가 표시된다.
사용자는 총 6번의 기회를 가지며, 문자를 맞추면 횟수는 차감되지 않는다.
char[] secretWord = { 'h', 'a', 'n', 'g', 'm', 'a', 'n' };
char[] guessWord = new char[secretWord.Length];
Array.Fill(guessWord, '_');
int attempts = 6;
bool wordGuessed = false; //사용자가 정답을 맞췄는지 판별
bool isIncluded = false; //사용자의 입력마다 틀렸는지 판별
while (attempts > 0) //남은 기회의 수가 0보다 많으면 반복
{
isIncluded = false;
foreach (char c in guessWord)
{
Console.Write(c);
}
Console.WriteLine(" 남은 오답 가능 횟수 : " + attempts);
char word = Console.ReadKey().KeyChar;
Console.WriteLine();
for(int i = 0; i <= secretWord.Length - 1; i++)
{
if(word == secretWord[i]) //새로운 문자를 맞춘 경우
{
guessWord[i] = word;
isIncluded = true;
}
}
if(compareArr(secretWord, guessWord))
{ //사용자가 단어를 모두 맞춘 경우
wordGuessed = true;
break;
}
if (!isIncluded)
{ //사용자가 틀린 경우
attempts--;
}
}
if (wordGuessed)
{
Console.WriteLine("축하합니다! 정답입니다!");
}
else
{
Console.WriteLine("실패했습니다.");
}
bool compareArr(char[] arr1, char[] arr2)
{ //두 개의 문자 배열을 비교해주는 메서드
if(arr1.Length != arr2.Length)
{
return false;
}
for(int i = 0; i < arr1.Length - 1; i++)
{
if (arr1[i] != arr2[i])
{
return false;
}
}
return true;
}
댓글남기기