Actor가 생성되는 시점(BeginPlay)에 로또 번호
(각 숫자는 1~45범위이고 중복되지 않는 숫자 6개)를 콘솔에 출력하는 코드를 구현하세요.)
**요구사항**
- 언리얼 엔진의 `FMath::RandRange()`를 사용해서 1~45사이의 랜덤 숫자를 생성합니다.
- 배열에 값이 이미 존재하는지 확인하기 위해 `TArray::Contains`를 사용할 수 있습니다.
[출력 예시]
//[LogTemp]는 실제 출력하는게 아니고 카테고리입니다.
[LogTemp] Lotto Numbers: 3, 15, 22, 30, 35, 44
void AMyActor::BeginPlay()
{
Super::BeginPlay();
int32 start = 1; // 추첨 시작 번호
int32 end = 45; // 추첨 끝 번호
int32 num = 0; // 당첨 번호
TArray<int32> Numbers; // 당첨 번호 넣을 배열
for (int32 i = 0; i < 6; ++i) // 랜덤 숫자 6개 받기
{
num = FMath::RandRange(start, end);
while (Numbers.Contains(num)) // Numbers 배열에 num이 포함돼있으면(중복 확인)
{
num = FMath::RandRange(start, end); // 다시 랜덤한 값 받기
}
Numbers.Add(num); // 배열에 당첨 숫자 넣기
}
UE_LOG(LogTemp, Warning, TEXT("Lotto Numbers: %d, %d, %d, %d, %d, %d"), Numbers[0], Numbers[1], Numbers[2], Numbers[3], Numbers[4], Numbers[5]);
}
위 코드를 구현한 액터를 언리얼엔진의 레벨에 배치하고 실행하면 Output Log에 실행 결과(UE_LOG)가 출력된다.
실행할때 마다 랜덤한 숫자 6개가 중복 없이 출력된다
'언리얼 + cpp' 카테고리의 다른 글
언리얼C++ 3일차(리플렉션 시스템) (0) | 2025.09.16 |
---|---|
언리얼C++ 2일차(트랜스폼) (0) | 2025.09.15 |
언리얼C++ 2일차(UE_LOG, 라이프 사이클 함수) (0) | 2025.09.15 |
언리얼C++ 2일차(C++ 파일 삭제, C++로 컴포넌트 추가하기) (0) | 2025.09.15 |
언리얼 엔진 C++ 공부 1일차(폴더, 빌드, 라이브코딩, 빌드 문제 복구하기) (0) | 2025.09.12 |