Labyrinth wege-finder

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

pirahni

Betreff: Labyrinth wege-finder

BeitragSo, Nov 30, 2008 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, ich habe ein Labyrinthcreator gecodet. Der kann eben Labyrinthe erzeugen und diese als Bild abspeichern. Jedes Feld hat 2 eigenschaften: Rechte Wand da/nicht da und untere Wand da/nicht da. Nun wollte ich wissen ob jemand weiß wie ich quasie auch eine Lösung machen kann. Das heisst dass er einmal das Labyrinth speichert und einmal das Labyrinth mit Lösung. Wäre über Antworten sehr beglückt Smile

The_Nici

BeitragSo, Nov 30, 2008 15:02
Antworten mit Zitat
Benutzer-Profile anzeigen
AStar-Algo Pathfinding benutzen.

pirahni

BeitragSo, Nov 30, 2008 15:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Keine Ahnung was das ist Confused aber mir fiel gerade ein Spruch von meiner Oma ein, ging irgendwie "Halte die linke Hand immer an den Rand" oder so. Trotzdem vielen dank.

The_Nici

BeitragSo, Nov 30, 2008 15:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist ein Pathfinding Algorhitmus, der findet den kürzesten Weg zwischen zwei Punkten. Google ihn und setze ihn in BlitzBasic um.

MfG

TimBo

BeitragSo, Nov 30, 2008 15:39
Antworten mit Zitat
Benutzer-Profile anzeigen
wird auch A* geschrieben.
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

Eingeproggt

BeitragSo, Nov 30, 2008 15:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum so unfreundlich?
Es gab mal eine Implementation auf der BlitzBase, deren Codes ja irgendwie unauffindbar sind, leider.
Also bleibt eh nur noch das blitzforum (Weil wir wissen ja im Hinterkopf: Wir können nicht jedem ins englische Forum schicken). Also warum nicht mal hier suchen? Hier findet man sogar einen Thread von Mathias, den genauen Namen weiß cih nciht mehr, aber so in der Art "AStar Pathfinding aufbereitet". Wenn das nicht mal n besserer Anfang ist als auf Google sich durch C-Codes zu wühlen die man Nüsse kapiert oder sich die Theorie anzuschauen und dann etwas zu bauen, was nicht funktioniert. Dann kommt die nächste Frage "Warum geht das nicht" usw...

Also einfach hier im Forum anfangen mit der Codesuche Wink

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

The_Nici

BeitragSo, Nov 30, 2008 16:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Warum so unfreundlich?

Ich gab ja nur konkrete Antworten. :<

Achja, ich würde lieber selber einen machen, einfach einen Code vom Codearchiv kopieren und ihn nicht verstehen führt oft zu überflüssigen Fragen.
Achja, warum nur das deutsche Codearchiv? Im englischen Codearchiv findet man sicherlich auch A*-Implentierungen.

TimBo

BeitragSo, Nov 30, 2008 16:20
Antworten mit Zitat
Benutzer-Profile anzeigen
sry für meine kurze = unfreundliche (??) Antwort.

Musste schnell gehen, da ich was machen musste.

Also ausführlicher :

Der Algorithmus wird auch A* geschrieben. Das ist die kürzere Form von A Star (Star = *)

Viele Grüße
TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

Eingeproggt

BeitragSo, Nov 30, 2008 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
lol, Timbo so meinte ich das auch nicht Smile

Ich meinte, ihn einfach in die Weiten des Netzes zu schicken mit nicht mehr als "AStar" oder "A*" ist ein bisschen wenig. Wie gesagt hier im Forum gibts ein Beispiel.
Und eine Funktion zu kopieren wie diese stellt für mich ehrlich gesagt kein Problem dar. Viele benutzen auch die Draw3D ohne zu wissen wie sie genau funktioniert. Man sollte halt soviel Verständnis haben, dass man weiß WAS die Funktion tut, WIE sie es tut kann einem vorerst mal egal sein.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

TimBo

BeitragSo, Nov 30, 2008 16:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ich habe noch ein bisschen im internet recherschiert

http://www.policyalmanac.org/g...al_de.html

Das ist ein sehr anschauliches, gut erklärtes Tutorial. (so habe ich mir den A* beigebracht)

Ich finde, man muss nicht wissen, wie die D3D funktioniert oder die Sprite Candy engine, aber
gerade bei solche Algorithmen denke ich , ist es wichtig, zu wissen, welchen Hintergrund sie hat.
Schaden tut es ja nicht und ich finde es besser wenn im Forum gefragt wird, wie dieser Algorithmus dort und dort funktioniert, als dass man fragt, warum diese Funktion nicht funktioniert, die man gerade kopiert hat.

Ich denke wenn du Fragen zur Umsetzung in BB3D etc. hast, dann wird dir hier sicher geholfen.

Grüße
TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

pirahni

BeitragSo, Nov 30, 2008 16:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau jetzt erst wieder rein, danke nochmal für die Antworten. Ich habe es jetzt mit dem Spruch meiner Oma versucht(kürzester Weg ist egal, es gibt nur einen Weg) auf jeden Fall sieht das schon ganz gut aus. Nur bei Sachen wie
Code: [AUSKLAPPEN]

_____
1|_9|
2|_8|
34567
_____

setzt er die "Wegpunkte" ungefähr so:
Code: [AUSKLAPPEN]

_____
x|_ |
x|_x|
xxx x
_____

Aus dem Grund weil er ja über punkt 8 dreimal kommt und über Punkt 6 zweimal. Also wird punkt 8 angeschaltet(an|aus|an) und punkt 6 nicht (an|aus)

Nun meine Frage: wie kann man es umgehen? also wie macht man es dass punkt 6 und nicht punkt 8 angescahltet wird? (Ich möchte nicht alles nochma neu schreiben mit a star)

pirahni

BeitragSo, Nov 30, 2008 16:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Sry wegen doppelpost. Dange TimBo, werde ich mir mal durchlesen(vielleicht schreibe ich es doch um)

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Nov 30, 2008 16:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Die linke oder rechte-Hand-Regel funktioniert aber nur, wenn sich innerhalb eines Labyrintes keine Ringverbidung befindet. Denn da kann es unter Umständen zu einer endlosen Rumlauferei kommen. Es funktioniert auch nicht, wenn es offenes Gelände gibt und das Ziel sich nicht genau in an einer Wand befindet etc...
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

pirahni

BeitragSo, Nov 30, 2008 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Anforderung erfüllt mein Code ja, es gibt keine Ringverbindungen und es gibt kein offenes Gelände.

coolo

BeitragSo, Nov 30, 2008 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt die Tutorials noch auf diesen Web archieven...
http://web.archive.org/web/200...path_1.htm Da isses ziemlich gut erklärt.
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project!
"Eigenzitate sind nur was für Deppen" -Eigenzitat

pirahni

BeitragMo, Dez 01, 2008 19:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, das erst Tutorial(von TimBo(Danke Very Happy )) hat mir geholfen. Ich habe drüber nachgedacht und jetzt klappt es. Thank an alle Beteidigten Very Happy

Edit: Wieso benutze ich zur Weihnachtszeit die Smileys so gern? Very Happy Very Happy Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group