Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

21.03.2013, 13:36

2-dimensioanles Array zu ungerichteten Grap konvertieren zur Zyklensuche

Hallo Community,

ich brauch Hilfe bei folgender Sache:
Ich hab' über ein Koordinatensystem Punkt in gleichen Abstand (immer ganzzahlig > 0) erzeugt, diese kann man verbinden per Mausklick (immer 2 benachbarte, aber nur horizontal oder vertikal) und jetzt möchte Zyklen finden.
Dazu würde ich gerne Graphenalgorithmen nutzen, weiß aber nicht, wie ich die Punkte, die in einem 2-dimensionalen Array zu einem Graphen konvertiere.

Hier mal ein Beispiel 2x2
o - Punkte aus dem Array
| - Kanten
x - freie Felder/Zwischenräume

o--o--o
|xxxxx|
oxxoxo
|xxxxx|
o--o--o

Hier wären beispielweise alle Außenpunkte miteinander verbunden, der Graph ist ungerichtet, die Nummerierung der Knoten ist ebenfalls egal.

Das Ganze hat folgenden Hintergrund. Jede Verbindung zwischen zwei Punkten ist 'ne Labyrinth-Mauer - der äußere Zyklus ist bei Spielstart immer vorhanden. Also sobald genau zwei Zyklen vorhanden sind, sprich es sind im inneren nicht alle Felder erreichbar, soll eine Fehlermeldung erscheinen.


Ich wär euch sehr dankbar, wenn mir jemand das allgemeien Vorrgehen nennen kann, wie man Punkte zu einem Graphen konvertiert.



Mit freundlichen Grüßen


GrafGraph

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

21.03.2013, 14:08

Dazu kannst du mal hier gucken. Das sind die gängigsten Darstellungsarten von Graphen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

3

21.03.2013, 14:34

Hi, danke.

Die Adjazenzliste sieht gut aus.

Kurze Nachfrage - Zyklensuch-Algos wie Floyd's Hase-und-Igel sind auf solche Listen anwendbar?

Ich würde dann auch meinen Graph gerichtet darstellen und nur Nicht-Außenpunkte als Startknoten zulassen.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

4

21.03.2013, 16:37

Normalerweise schon. Dabei kommt es vor allem auf deine Umsetzung des Algorithmus an. Im Prinzip sollte die Darstellung aber keine Rolle spielen. Ansonsten wirst du doch eine Vorstellung von dem Algorithmus haben, wenn du ihn implementieren willst. Da wirst du doch selbst überlegen können ob das zusammen passt oder nicht, oder nicht?;)
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige