게임 상태 유지 및 업데이트는 게임 개발에서 중요한 작업입니다. 게임의 상태 정보에는 캐릭터의 건강, 점수, 레벨 진행 등과 같은 여러 가지 매개 변수가 포함됩니다. 이러한 상태 정보는 일반적으로 초기 값이 필요하며 Array_fill_Keys 함수는 어레이를 초기화 할 때 키와 해당 기본값을 제공하는 데 도움이되는 PHP에서 매우 유용한 도구입니다.
이 기사에서는 Array_Fill_Keys를 사용하여 초기 상태가있는 게임 상태를 만들고 실제 코드 예제를 표시하는 방법을 살펴 봅니다.
array_fill_keys 는 PHP의 기능으로 연관 배열을 생성합니다. 두 가지 매개 변수를 수용합니다.
키 : 배열 키가 포함 된 배열.
값 : 각 키의 초기 값.
함수는 각 키가 들어오는 키 어레이에 의해 제공되는 새 배열을 반환하고 모든 키는 동일한 초기 값을 할당합니다.
건강, 경험, 금화 등과 같이 각 플레이어가 초기화 해야하는 여러 상태 정보가있는 간단한 롤 플레잉 게임을 개발한다고 가정 해 봅시다. 게임 시작시 각 플레이어의 속성에 초기 값을 할당 할 수 있기를 희망합니다.
예를 들어 플레이어의 다음 상태 정보를 정의 할 수 있습니다.
건강 (건강)
경험 (경험 가치)
금 (금화)
레벨 (레벨)
이 정보의 초기 값은 다음과 같습니다.
건강 : 100
경험 : 0
금화 : 50
레벨 레벨 : 1
Array_Fill_Keys를 사용 하여이 초기화 프로세스를 단순화 할 수 있습니다.
다음은 Array_Fill_Keys를 사용하여 초기 상태 게임 상태 배열을 작성하기위한 PHP 코드 예제입니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 게임 상태를 정의하는 키</span></span><span>
</span><span><span class="hljs-variable">$gameKeys</span></span><span> = [</span><span><span class="hljs-string">'health'</span></span><span>, </span><span><span class="hljs-string">'experience'</span></span><span>, </span><span><span class="hljs-string">'gold'</span></span><span>, </span><span><span class="hljs-string">'level'</span></span><span>];
</span><span><span class="hljs-comment">// 각 키의 초기 값을 정의하십시오</span></span><span>
</span><span><span class="hljs-variable">$initialValue</span></span><span> = [
</span><span><span class="hljs-string">'health'</span></span><span> => </span><span><span class="hljs-number">100</span></span><span>,
</span><span><span class="hljs-string">'experience'</span></span><span> => </span><span><span class="hljs-number">0</span></span><span>,
</span><span><span class="hljs-string">'gold'</span></span><span> => </span><span><span class="hljs-number">50</span></span><span>,
</span><span><span class="hljs-string">'level'</span></span><span> => </span><span><span class="hljs-number">1</span></span><span>
];
</span><span><span class="hljs-comment">// 사용 array_fill_keys 게임 상태를 초기화하십시오</span></span><span>
</span><span><span class="hljs-variable">$gameState</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_fill_keys</span></span><span>(</span><span><span class="hljs-variable">$gameKeys</span></span><span>, </span><span><span class="hljs-literal">null</span></span><span>);
</span><span><span class="hljs-comment">// 각 키를 해당 초기 값에 할당하십시오</span></span><span>
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$gameState</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> => </span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$initialValue</span></span><span>[</span><span><span class="hljs-variable">$key</span></span><span>])) {
</span><span><span class="hljs-variable">$gameState</span></span><span>[</span><span><span class="hljs-variable">$key</span></span><span>] = </span><span><span class="hljs-variable">$initialValue</span></span><span>[</span><span><span class="hljs-variable">$key</span></span><span>];
}
}
</span><span><span class="hljs-comment">// 출력 게임 상태 배열</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$gameState</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[health] => </span><span><span class="hljs-number">100</span></span><span>
[experience] => </span><span><span class="hljs-number">0</span></span><span>
[gold] => </span><span><span class="hljs-number">50</span></span><span>
[level] => </span><span><span class="hljs-number">1</span></span><span>
)
</span></span>
1 단계 : 먼저 게임 상태 속성 이름이 포함 된 배열 $ 게임 키를 정의하며, 이는 연관 배열의 키 역할을합니다.
2 단계 : 각 상태 속성의 초기 값을 포함하는 연관 배열 $ 초기 값을 정의합니다.
3 단계 : Array_Fill_Keys 함수를 통해 모든 값 으로 Array $ Gamestate를 초기화하고 키는 $ GameKeys 배열에서 나옵니다.
4 단계 : Foreach Loop을 사용하여 $ Gamestate Array를 반복하고 각 키의 값을 $ InitialValue 의 해당 초기 값으로 바꿉니다.
루프 사용을 피하려면 각 키의 초기 값을 Array_Fill_Keys 에서 직접 설정할 수도 있습니다. 다음은 숫자 ( + 연산자)의 조합을 사용하여 값을 직접 초기화하는 또 다른 방법입니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$gameKeys</span></span><span> = [</span><span><span class="hljs-string">'health'</span></span><span>, </span><span><span class="hljs-string">'experience'</span></span><span>, </span><span><span class="hljs-string">'gold'</span></span><span>, </span><span><span class="hljs-string">'level'</span></span><span>];
</span><span><span class="hljs-variable">$initialValue</span></span><span> = [
</span><span><span class="hljs-string">'health'</span></span><span> => </span><span><span class="hljs-number">100</span></span><span>,
</span><span><span class="hljs-string">'experience'</span></span><span> => </span><span><span class="hljs-number">0</span></span><span>,
</span><span><span class="hljs-string">'gold'</span></span><span> => </span><span><span class="hljs-number">50</span></span><span>,
</span><span><span class="hljs-string">'level'</span></span><span> => </span><span><span class="hljs-number">1</span></span><span>
];
</span><span><span class="hljs-comment">// 사용 array_fill_keys 기본 배열을 만듭니다,초기 값과 병합됩니다</span></span><span>
</span><span><span class="hljs-variable">$gameState</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_fill_keys</span></span><span>(</span><span><span class="hljs-variable">$gameKeys</span></span><span>, </span><span><span class="hljs-literal">null</span></span><span>) + </span><span><span class="hljs-variable">$initialValue</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$gameState</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
이런 식으로 코드를 결합하고 조작하여 명시 적 루프를 피함으로써 코드를 단순화합니다.
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[health] => </span><span><span class="hljs-number">100</span></span><span>
[experience] => </span><span><span class="hljs-number">0</span></span><span>
[gold] => </span><span><span class="hljs-number">50</span></span><span>
[level] => </span><span><span class="hljs-number">1</span></span><span>
)
</span></span>
Array_Fill_Keys 함수는 PHP에서 매우 유용한 도구로 초기 값과 관련된 연관 배열을 신속하게 생성 할 수 있습니다. 이 기능을 통해 게임 상태 또는 기타 시나리오에 대한 기본값이있는 배열을 쉽게 초기화하고 실제 요구에 따라 이러한 값을 추가로 수정할 수 있습니다. 기본값으로 모든 키를 초기화하거나 병합 작업을 사용하여 초기 상태를 추가로 개선하는지 여부에 관계없이 Array_Fill_Keys는 효율적인 선택입니다.