작성
·
483
0
Random Integer 에 Max 3 을 넣으면 0 1 2 3 이렇게 총 4가지가 되는거 아닌가요?
0일경우 Rock 로 되고 1일때도 Rock 로 되던데
이러면 확율적으로 맞지 않는거 같습니다.
그래서 Random Integer in Range 로 Min1 Max3 을 하였는데 ERock Paper Scissors MAX 라는 문구가 출력됩니다.
정상 작동이 아닌듯 한데 이건 왜 출력되는건지요?
답변 2
0
강의에서도 설명해주셨지만 Random integer 범위는 0부터 Max-1 까지 입니다.
즉 Max가 3이라면, Max-1= 2니까 0,1,2 인거죠
"0일경우 Rock 로 되고 1일때도 Rock 로 되던데
이러면 확율적으로 맞지 않는거 같습니다." 근데 이건 무슨말씀인지 모르겠습니다??
아무튼 Random Integer in Range을 사용하시게 될경우 노드에 마우스 위에 올려보시면
≥min,≤max 이렇게 되어있어요 그러니까 min에는 0 max에는 2 를 넣으셔야 정상작동 됩니다
min에 1넣고 max에 3 넣으시게되면 문제가 생깁니다.
컴퓨터는 0,1,2 가 아니라 1,2,3 중 하나를 출력하니까요
열거항에 바위(0), 보(1), 가위(2) 순으로 넣으셨으면, 컴퓨터는 바위를 못냅니다.
컴퓨터가 가끔 3을 넣으면 열거항에 3이 없으니까 에러가 나는것이구요
0
안녕하세요, 인프런 AI 인턴입니다.
언리얼로게임만들어보자님, Random Integer
관련 질문에 대해 답변드릴게요.
일반적으로 언리얼 엔진의 “Random Integer” 함수를 사용할 때, “Max 3”을 설정하면 원하시는 바와 같이 0부터 3까지 총 4개의 숫자 중 하나가 랜덤으로 선택됩니다. 그런데 “Random Integer in Range” 함수를 사용할 경우, Min과 Max를 지정하는데, 여기서는 Min 값을 포함하고 Max 값을 포함하지 않는 범위를 생성합니다. 따라서 Min 1, Max 3을 설정하면 1, 2만 선택될 것입니다.
이미지 설명을 통해 알 수 있는 점은, “ERock Paper Scissors MAX”라는 문구가 출력될 때, 원하시는 로직이 아니게 작동하고 있는 것 같군요. 이는 아마도 열거형(Enum) 변수를 사용하실 때, 정의된 범위 바깥의 값이 설정되어 해당 출력값이 나타나는 것이 아닐까 추측해봅니다. “ERock Paper Scissors MAX”라는 문구가 나타나는 것은 특정 값을 초과했을 때 출력되는 기본값 혹은 오류 메시지일 수 있습니다.
정확한 원인을 파악하기 위해서는 블루프린트의 전체 로직과 숫자를 할당하는 부분, 그리고 Enum 정의를 살펴보아야 합니다. 여기서는 랜덤 값을 지정하는 범위와 해당 값이 어떻게 “Rock,” “Paper,” “Scissors”와 연결되어 있는지 확인해보시는 것이 중요합니다.
질문에 첨부해주신 이미지에 대한 설명을 바탕으로, “Random Integer in Range” 노드에 잘못된 범위가 설정되어 있거나, 또는 Enum의 값을 잘못 사용하고 있을 가능성이 있습니다. 따라서 블루프린트의 “Random Integer in Range” 노드 설정과 Enum 정의에 대해서 다시 한번 검토해보시길 권장드립니다. 게임의 로직에 따라 적절한 범위 설정이 필요합니다.
추가적으로 문제가 계속 발생한다면, 언리얼 엔진의 공식 문서 또는 관련 커뮤니티 포럼에서 비슷한 문제로 해결 방법을 찾는 것도 도움이 될 수 있습니다. 다음 링크는 Spring Boot Reference Documentation 중 랜덤 값을 설정하는 예시를 보여주는 부분입니다. 이와 유사한 방법으로 랜덤 값을 설정할 때 참고가 될 수 있어요.
- Spring Boot Reference Documentation: 랜덤 값 설정하기
프로젝트 진행에 도움이 되길 바라며, 추가적으로 궁금한 점이 있으시면 말씀해주세요!