본캠프 74일차_언리얼엔진 게임개발 입문_숫자 야구 게임 코드 해석_2

YU YEON WON·2025년 11월 25일

1. 오늘 배운 내용(키워드)

숫자 야구 게임을 만드는 강의를 듣고 과제를 진행하고 있다. 해당 과제에서 나오는 함수가 어려워 여기에 작성을 하고 해석을 해본다. IsGuessNumberString는 제시된 문자열이 추측하는 숫자 문자열인지 확인 하는 함수이다.

bool ACXGameModeBase::IsGuessNumberString(const FString& InNumberString)
{
	bool bCanPlay = false;

	do
	{
		if (InNumberString.Len() != 3)
		{
			break;
		}

		bool bIsUnique = true;
		TSet<TCHAR> UniqueDigits;
		for (TCHAR C : InNumberString)
		{
			if (FChar::IsDigit(C) == false || C == '0')
			{
				bIsUnique = false;
				break;
			}

			UniqueDigits.Add(C);
		}

		if (bIsUnique == false)
		{
			break;
		}

		bCanPlay = true;

	} while (false);

	return bCanPlay;
}

bool bCanPlay = false;

기본 값으로 false를 설정한다.


if (InNumberString.Len() != 3)
{
    break;
}

문자열의 길이가 3이 아니면 끝낸다.


		bool bIsUnique = true;
		TSet<TCHAR> UniqueDigits;
		for (TCHAR C : InNumberString)
		{
			if (FChar::IsDigit(C) == false || C == '0')
			{
				bIsUnique = false;
				break;
			}

			UniqueDigits.Add(C);
		}

각 문자를 순회하면서 숫자가 아닌 경우, 0인 경우 -> false
그렇지 않으면 UniqueDigits 집합에 추가(중복 제거)
모든 문자가 숫자이며, '0'이 아니고 중복되지 않아야 한다.


		if (bIsUnique == false)
		{
			break;
		}

		bCanPlay = true;

bIsUnique 값이 false면 멈추고
조건이 모두 만족하면 bCanPlay = true
결과를 반환한다.


do{...} while(false)는 여러 조건을 진행하면서 break를 만나 진행을 멈추고 마지막 return에 결과를 반환한다.

2. 느낀점

간단한 게임이지만 코드로 작성했을 때 코드 일고 해석하는게 어려워 이해하기 위해 작성해보았다.
do while 문이 어려워 보이지만 의외로 간단한 내용이었다.

3. 내일 학습 할 것

9번 과제(숫자 야구 게임 만들기) 진행

profile
🕹️🎮🍱✈️📸 안녕하세요! 게임개발에 도전하고 있습니다!

0개의 댓글