Problem in PHP lösen

Hallo,
Ich suche nach Hilfe für ein relativ komplexes PHP Problem, oder zumindest für ist es für mich zu komplex :wink:

Ich habe Arrays in denen die Daten von Gebieten mit deren Nachbarn liegen und jetzt will ich feststellen, welche Gebiete z.b. 3 Gebiete voneinander entfernt sind.
Also wenn G1 ein Nachbarn von G2 ist, und G2 ein Nachbar von G3 und dieses Gebiet ein Nachbar von G4, dann sind G1 und G4 3 weit entfernt. Es geht quasi um ein brettspielartiges Bewegungssystem, bei dem man sich 3 Felder weit bewegen darf.

Die Arrays sehen so aus:
G1 (
[name] = „“
[nachbarn] = array(„G2“, „Gn“, …)
)
G1 (
[name] = „“
[nachbarn] = array(„G1“, „G3“, …)
)

Wer kann mir sagen, wie ich an dieses Problem herangehen kann oder evtl mir sogar einen Code-Schnipsel zur Verfügung stellen?

Hallo,

wie muss man sich dieses Spielbrett denn vorstellen? Vermutlich gehts da in x und y Richtung, denn sonst bräuchtest du ja keine Nachbar-Infos.

Wenn es einem Schachbrett nachempfunden ist, würde ich in Arrays die Zeilen und Spalten abspeichern, dann müsste man das sicher irgendwie errechnen können.

Ansonsten wäre ein Weg alle Nachbarn auf deren Nachbarn abzuklopfen, aber das erhöht die Rechenlast natürlich expotenziell.

Vielleicht solltest du einen neuen Ansatz verfolgen und statt die Nachbarn zu speichern zu jedem Feld einen X/Y Wert speichern. Dann kannst du sehr schnell die Nachbarn errechnen und natürlich auch den weg zu einem anderen Feld.

Grüße
Stefan

Mein Spielbrett ähnelt eher einer Landkarte, sodass ich mir ein X/Y Raster nur schwer vorstellen kann.

So ähnlich wie bei Risiko?

Ich könnte mir auch da ein x/y Raster vorstellen, machst halt noch Wasser-Kacheln dazu, dann kannst auch Ozeane o.ä. abbilden.

Sonst fällt mir jetzt so schnell keine gute Lösung ein.

Grüße
Stefan

Mein Spielbrett ähnelt eher einer Landkarte, sodass ich mir
ein X/Y Raster nur schwer vorstellen kann.