Le maintien et la mise à jour du statut de jeu sont une tâche cruciale dans le développement du jeu. Plusieurs fois, les informations d'état du jeu impliquent plusieurs paramètres différents, tels que la santé, le score, le score , le niveau de progrès, etc.
Dans cet article, nous explorerons comment utiliser array_fill_keys pour créer un tableau d'états de jeu avec les états initiaux et afficher des exemples de code réels.
array_fill_keys est une fonction de PHP pour créer des tableaux associatifs. Il accepte deux paramètres:
Clés : un tableau contenant des clés de tableau.
Valeur : la valeur initiale de chaque clé.
La fonction renvoie un nouveau tableau où chaque clé est fournie par le tableau des touches entrant et toutes les clés se voient attribuer la même valeur initiale.
Supposons que nous développons un jeu de rôle simple où chaque joueur a plusieurs informations de statut qui doivent être initialisées, telles que la santé, l'expérience, les pièces d'or, etc. Nous espérons pouvoir attribuer des valeurs initiales aux attributs de chaque joueur au début du jeu.
Par exemple, nous pouvons définir les informations d'état suivantes pour le joueur:
Santé (santé)
Expérience (valeur de l'expérience)
or (pièces d' or)
niveau (niveau)
Les valeurs initiales de ces informations peuvent être les suivantes:
Santé : 100
Expérience : 0
Pièces d'or : 50
Niveau : 1
Nous pouvons utiliser array_fill_keys pour simplifier ce processus d'initialisation.
Voici un exemple de code PHP pour créer un tableau d'état d'état d'état initial à l'aide d'Array_Fill_keys :
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Clés qui définissent l'état de jeu</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">// Définir la valeur initiale de chaque clé</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">// utiliser array_fill_keys Initialiser l'état du jeu</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">// Attribuez chaque touche à la valeur initiale correspondante</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">// Tableau d'état de jeu de sortie</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>
Étape 1 : Nous définissons d'abord un tableau $ gamekeys contenant des noms d'attribut d'état de jeu, qui serviront de clés du tableau associatif.
Étape 2 : Nous définissons un tableau associatif $ initialValue qui contient la valeur initiale de chaque propriété d'état.
Étape 3 : Grâce à la fonction Array_Fill_keys , nous initialisons un array $ gameState avec toutes les valeurs nuls , et les clés proviennent du tableau $ GameKeys .
Étape 4 : Nous utilisons une boucle ForEach pour itérer le tableau $ gameState et remplacer la valeur de chaque touche par la valeur initiale correspondante dans $ initialValue .
Pour éviter d'utiliser des boucles, vous pouvez également définir la valeur initiale de chaque clé directement dans array_fill_keys . Voici une autre façon d'initialiser la valeur directement à l'aide de combinaisons de nombres ( + opérateurs):
<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">// utiliser array_fill_keys Créer un tableau de base,et fusionner avec la valeur initiale</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>
De cette façon, simplifie le code en le combinant et en le manipulant, en évitant les boucles explicites.
<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>
La fonction Array_Fill_keys est un outil très utile en PHP qui peut nous aider à créer rapidement des tableaux associatifs avec des valeurs initiales. Grâce à cette fonction, nous pouvons facilement initialiser un tableau avec des valeurs par défaut pour l'état de jeu ou d'autres scénarios, et modifier davantage ces valeurs en fonction des besoins réels. Que ce soit pour initialiser toutes les clés avec des valeurs par défaut ou pour affiner davantage l'état initial à l'aide des opérations de fusion, Array_Fill_keys est un choix efficace.