배열 셔플(array_shuffle) 함수 설명
array_shuffle
함수는 원래 배열의 요소들을 무작위로 재배열한 새로운 배열을 반환합니다. 오프셋(Offset)과 길이(Length)를 제공하면, 반환된 배열은 원래 배열의 해당 범위에 있는 요소 수와 동일한 수의 요소를 가집니다. 원래 배열을 제자리에서 변경하는 함수는 array_shuffle_ext
를 참조하세요.
문법
array_shuffle(array, [offset], [length]);
인수 설명
인수 | 유형 | 설명 |
---|---|---|
array | Array | 셔플할 배열 |
offset | Real | 셔플을 시작할 배열의 오프셋 또는 시작 인덱스입니다. 기본값은 0입니다. 음수 값을 설정하면 배열의 끝에서부터 계산됩니다. 시작 인덱스는 array_length(array) + offset 이 됩니다. |
length | Real | 셔플할 요소의 수입니다. 기본값은 (array_length(array) - 1) 입니다. |
반환값
- 배열: 셔플된 새로운 배열이 반환됩니다.
예제
다음 코드는 배열을 생성하고, array_shuffle
함수를 사용하여 배열을 셔플한 후 결과를 출력합니다.
var _array = ["Everyday", "I", "'m", "shuffling"];
var _array_shuffled = array_shuffle(_array);
show_debug_message(_array_shuffled);
위의 코드는 먼저 몇 개의 단어가 포함된 배열 _array
를 생성합니다. 그런 다음 array_shuffle
을 사용하여 배열을 셔플하고, 결과를 새로운 배열 _array_shuffled
에 저장합니다. 마지막으로 디버그 메시지를 통해 셔플된 배열의 내용을 보여줍니다.
활용 예제
- 랜덤 퀴즈 생성기
- 문제와 답변을 배열로 저장하고,
array_shuffle
을 사용하여 문제의 순서를 무작위로 변경합니다.
gml var questions = ["What is 2 + 2?", "What is the capital of France?", "What is the largest ocean?"]; var shuffled_questions = array_shuffle(questions);
- 게임 아이템 드랍 시스템
- 아이템 목록을 배열로 만들고, 드랍 시 무작위로 아이템을 선택합니다.
gml var items = ["Sword", "Shield", "Potion", "Armor"]; var dropped_items = array_shuffle(items);
- 음악 재생 목록 무작위 재생
- 음악 트랙을 배열로 저장하고,
array_shuffle
을 사용하여 무작위로 재생합니다.
gml var playlist = ["Track1", "Track2", "Track3", "Track4"]; var shuffled_playlist = array_shuffle(playlist);
- 학생 명단 무작위 배치
- 학생 이름을 배열로 만들고, 무작위로 배치하여 팀을 구성합니다.
gml var students = ["Alice", "Bob", "Charlie", "David"]; var team_assignment = array_shuffle(students);
이와 같이 array_shuffle
함수는 다양한 상황에서 유용하게 활용될 수 있습니다.