array_shift 함수 설명 및 활용 예제

함수 설명

array_shift 함수는 주어진 배열의 첫 번째 요소를 제거하고 그 값을 반환하는 기능을 합니다. 이로 인해 나머지 요소들은 왼쪽으로 한 칸씩 이동하게 됩니다. 즉, 인덱스 0의 값이 제거되고, 인덱스 1의 값이 인덱스 0으로 이동하며, 인덱스 2의 값은 인덱스 1로 이동하는 식입니다. 배열의 요소 수는 1 감소하게 되며, 마지막 요소를 대체할 값이 없기 때문입니다.

이 함수는 array_pop과 동일하게 작동하지만, 마지막 요소 대신 첫 번째 요소를 제거하고 반환합니다. 배열에서 첫 번째 요소를 제거하지 않고 가져오려면 array_first 함수를 사용합니다.

문법

array_shift(array);

매개변수

매개변수 타입 설명
array Array 첫 번째 요소를 반환하고 제거할 배열

반환값

  • 제거된 첫 번째 배열 요소의 타입

예제

예제 1: 기본 사용법

var _array = ["A", "B", "C"];
repeat(2) {
    array_shift(_array);
}
show_debug_message(_array);

위 코드는 _array 배열에 대해 array_shift를 두 번 호출합니다. 첫 번째 호출에서 "A"가 제거되고, 두 번째 호출에서 "B"가 제거됩니다. 따라서 최종적으로 배열에는 "C"만 남게 됩니다.

예제 2: array_shiftarray_push를 이용한 큐

var _queue = [];
var _incoming = ["S", "O", "M", "E", " ", "L", "E", "T", "T", "E", "R", "S"];
MAX_QUEUE_LENGTH = 4;
var _len = array_length(_incoming), i = 0;
repeat(_len) {
    array_push(_queue, _incoming[i]);
    if (array_length(_queue) > MAX_QUEUE_LENGTH) {
        array_shift(_queue);
    }
    i++;
}

위 코드는 array_shiftarray_push를 사용하여 큐처럼 작동하는 임시 배열 _queue를 생성합니다. 두 번째 배열 _incoming의 문자들이 반복문을 통해 큐 배열에 하나씩 추가됩니다. 큐의 길이가 4를 초과할 경우, array_shift를 사용하여 첫 번째 요소를 제거합니다.

예제 3: 배열 회전

var _array = ["F", "O", "R", "E", "V", "E", "R"];
repeat(10) {
    array_push(_array, array_shift(_array));
    show_debug_message(_array);
}

위 예제에서는 배열 _array가 10번 회전됩니다. 배열을 "회전"한다는 것은 한 쪽 끝에서 요소를 제거하고 다른 쪽 끝에 다시 추가하는 것을 의미합니다. 배열의 길이는 동일하게 유지됩니다. 각 반복마다 문자들이 왼쪽으로 이동하며, 각 반복 후 배열의 내용을 보여주는 디버그 메시지가 출력됩니다.

추가 활용 예제

예제 4: 배열에서 특정 조건을 만족하는 요소 제거

var _array = [1, 2, 3, 4, 5];
while (array_length(_array) > 0) {
    var value = array_shift(_array);
    if (value % 2 == 0) {
        show_debug_message("Removed even number: " + string(value));
    }
}

예제 5: 사용자 입력을 큐에 저장

var _queue = [];
while (true) {
    var user_input = get_user_input(); // 사용자 입력 함수
    array_push(_queue, user_input);
    if (array_length(_queue) > MAX_QUEUE_LENGTH) {
        array_shift(_queue);
    }
}

예제 6: 배열을 사용한 게임 오브젝트 관리

var _active_objects = [];
var _new_object = create_new_object(); // 새로운 오브젝트 생성 함수
array_push(_active_objects, _new_object);
if (array_length(_active_objects) > MAX_ACTIVE_OBJECTS) {
    array_shift(_active_objects);
}

이와 같이 array_shift 함수는 다양한 상황에서 유용하게 활용될 수 있습니다.

Read more

기술 문서 해설 및 활용 예제

이 문서는 특정 기술에 대한 설명과 활용 방법을 다룹니다. 아래에서 내용을 쉽게 이해할 수 있도록 해설하고, 다양한 활용 및 응용 예제를 추가로 제공합니다. 기술 개요 이 기술은 게임 개발에서 자주 사용되는 기능으로, 특정 작업을 자동화하거나 효율적으로 처리하는 데 도움을 줍니다. 주로 게임의 로직을 구성하거나 사용자 인터페이스를 제어하는 데 사용됩니다. 주요

By 이재협/실장/시스템개발실/PHYSIA

키워드 설명서

이 문서는 특정 키워드에 대한 설명과 사용법을 제공합니다. 문법 (arguments); 인수 인수 이름 유형 설명 argument_name 인수에 대한 설명을 여기에 작성합니다. 반환값 (선택적 설명) 예제 code_example() { // 여기에 코드 예제를 설명합니다. } 코드 예제 설명 위의 코드 예제는 특정 기능을 수행하는 함수의 기본 구조를 보여줍니다. 이 함수는 인수를 받아들이고, 특정

By 이재협/실장/시스템개발실/PHYSIA

GameMaker 환경 설정 및 기능

이 문서에서는 GameMaker의 환경 설정 및 다양한 IDE 기능에 대한 정보를 제공합니다. 다음은 주요 항목들입니다: IDE 환경 설정 IDE(통합 개발 환경) 설정은 GameMaker의 전반적인 사용 경험을 조정하는 데 도움을 줍니다. 여기서 사용자는 개인의 필요에 맞게 다양한 옵션을 설정할 수 있습니다. 주요 설정 항목 설정 항목 설명 테마 IDE의 색상

By 이재협/실장/시스템개발실/PHYSIA

GameMaker IDE 설명서

GameMaker IDE는 게임을 만들고 소프트웨어에서 제공하는 모든 기능을 활용하는 주요 인터페이스입니다. 이 프로그램은 시작 화면부터 게임을 만들기 위해 사용하는 모든 편집기 창까지 포함되며, 매뉴얼과 다양한 튜토리얼에서 IDE라고 언급됩니다. IDE의 구성 요소 다음 섹션에서는 IDE에 대한 정보를 다룹니다: 1. 설정 및 기능 IDE의 설정 및 기능은 사용자가 게임 개발을 보다 효율적으로

By 이재협/실장/시스템개발실/PHYSIA