Stellen Sie sich vor, im Spiel Snake gibt es viel Futter auf der Karte und das Programm muss erkennen, ob der Kopf der Schlange mit dem Futter kollidiert (gemäß den Koordinaten auf der Karte).
Wenn Sie ein Array zum Speichern von Lebensmittelinformationen verwenden, müssen Sie das Array durchlaufen. Wenn jedoch viele Lebensmittel vorhanden sind (das Array ist groß), ist kein vollständiger Durchlauf erforderlich, da nur Lebensmittel innerhalb eines bestimmten Bereichs kollidieren können.
Das Problem besteht darin, anhand der Koordinaten die Lebensmittel zu finden, die möglicherweise kollidieren, ohne das gesamte Array zu durchqueren.
Ich kann mir vorstellen, array_filter zu verwenden, aber im Wesentlichen handelt es sich immer noch um eine Traversierung.
Wenn es eine Möglichkeit gibt, andere Datenstrukturen (ohne Arrays) zu verwenden, können Sie diese auch bereitstellen.
Vielleicht haben Freunde, die Spiele gespielt haben, gute Lösungen.
Stellen Sie sich vor, im Spiel Snake gibt es viel Futter auf der Karte und das Programm muss erkennen, ob der Kopf der Schlange mit dem Futter kollidiert (gemäß den Koordinaten auf der Karte).
Wenn Sie ein Array zum Speichern von Lebensmittelinformationen verwenden, müssen Sie das Array durchlaufen. Wenn jedoch viele Lebensmittel vorhanden sind (das Array ist groß), ist kein vollständiger Durchlauf erforderlich, da nur Lebensmittel innerhalb eines bestimmten Bereichs kollidieren können.
Das Problem besteht darin, anhand der Koordinaten die Lebensmittel zu finden, die möglicherweise kollidieren, ohne das gesamte Array zu durchqueren.
Ich kann mir vorstellen, array_filter zu verwenden, aber im Wesentlichen handelt es sich immer noch um eine Traversierung.
Wenn es eine Möglichkeit gibt, andere Datenstrukturen (ohne Arrays) zu verwenden, können Sie diese auch bereitstellen.
Vielleicht haben Freunde, die Spiele gespielt haben, gute Lösungen.
Der Sortiersatztyp von Redis kann Ihre Anforderungen erfüllen http://redis.readthedocs.io/e...
Ich glaube, es sieht so aus:
Zuallererst ist das Essen in der gierigen Schlange ein Ball. Das Array, das das Essen speichert, sollte
x y] = r; zeichnet ein maxR-Ding auf, das den maximalen Radius der Nahrung darstellt, maxR=max(r).