Die Aufrechterhaltung und Aktualisierung des Spielstatus ist eine entscheidende Aufgabe in der Spielentwicklung. Die Statussinformationen des Spiels beinhalten oft mehrere verschiedene Parameter, wie z. B. die Gesundheit des Charakters, die Punktzahl, der Ebenenfortschritt usw. Diese Statussinformationen erfordern normalerweise einen Anfangswert, und die Funktion array_fill_keys ist ein sehr nützliches Tool in PHP, das uns helfen kann, eine Reihe von Schlüssel und deren entsprechende Standardwerte bei der Initialisierung eines Arrays anzugeben.
In diesem Artikel werden wir untersuchen, wie Sie Array_Fill_Keys verwenden, um eine Reihe von Spielzuständen mit anfänglichen Zuständen zu erstellen und tatsächliche Codebeispiele anzuzeigen.
Array_Fill_Keys ist eine Funktion in PHP, um assoziative Arrays zu erstellen. Es akzeptiert zwei Parameter:
Schlüssel : Ein Array mit Arrayschlüssel.
Wert : Der Anfangswert jedes Schlüssels.
Die Funktion gibt ein neues Array zurück, bei dem jede Taste vom eingehenden Schlüsselarray bereitgestellt wird und allen Schlüssel den gleichen Anfangswert zugewiesen wird.
Angenommen, wir entwickeln ein einfaches Rollenspiel, bei dem jeder Spieler über mehrere Statusinformationen verfügt, die initialisiert werden müssen, wie Gesundheit, Erfahrung, Goldmünzen usw. Wir hoffen, dass zu Beginn des Spiels die Attribute jedes Spielers Anfangswerte zugewiesen werden können.
Zum Beispiel können wir die folgenden Statussinformationen für den Spieler definieren:
Gesundheit (Gesundheit)
Erfahrung (Erfahrung Wert)
Gold (Goldmünzen)
Stufe (Ebene)
Die Anfangswerte dieser Informationen können wie folgt sein:
Gesundheit : 100
Erfahrung : 0
Goldmünzen : 50
Stufe Level: 1
Wir können Array_Fill_Keys verwenden, um diesen Initialisierungsprozess zu vereinfachen.
Hier ist ein PHP -Code -Beispiel zum Erstellen eines anfänglichen Status -Status -Array des Statusspiels mit Array_Fill_Keys :
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Schlüssel, die den Spielstatus definieren</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">// Definieren Sie den Anfangswert jedes Schlüssels</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">// verwenden array_fill_keys Initialisieren Sie den Spielstatus</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">// Weisen Sie dem entsprechenden Anfangswert jeden Schlüssel zu</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">// Spielstatus -Array ausgeben</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>
Schritt 1 : Wir definieren zunächst ein Array $ GameKeys mit Namensattributnamen, das als Schlüssel für das assoziative Array dient.
Schritt 2 : Wir definieren ein assoziatives Array $ initialValue , das den Anfangswert jeder staatlichen Eigenschaft enthält.
Schritt 3 : Über die Funktion array_fill_keys initialisieren wir ein Array $ Gamestate mit allen Werten null , und die Schlüssel stammen aus dem $ GameKeys -Array.
Schritt 4 : Wir verwenden für die Ehe -Schleife, um das $ Gamestate -Array zu iterieren und den Wert jedes Schlüssels durch den entsprechenden Anfangswert in $ initialValue zu ersetzen.
Um die Verwendung von Schleifen zu vermeiden, können Sie auch den Anfangswert jeder Taste direkt in Array_Fill_Keys festlegen. Hier finden Sie eine andere Möglichkeit, den Wert direkt unter Verwendung von Zahlenkombinationen ( + Operatoren) zu initialisieren:
<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">// verwenden array_fill_keys Erstellen Sie ein grundlegendes Array,und mit dem Anfangswert verschmelzen</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>
Auf diese Weise vereinfacht der Code, indem er ihn kombiniert und manipuliert und explizite Schleifen vermeidet.
<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>
Die Funktion array_fill_keys ist ein sehr nützliches Tool in PHP, mit dem wir schnell assoziative Arrays mit Anfangswerten erstellen können. Durch diese Funktion können wir ein Array einfach mit Standardwerten für Spielstatus oder andere Szenarien initialisieren und diese Werte entsprechend den tatsächlichen Bedürfnissen weiter ändern. Unabhängig davon, ob alle Schlüssel mit Standardwerten initialisiert werden oder den Ausgangszustand mithilfe von Merge -Operationen weiter verfeinert werden, ist Array_Fill_keys eine effiziente Wahl.