A* Algorithmus (a star Algorithmus) btw. Pathfinding
-
Auf folgender seite wird die Funktionalität des A* Algorithmus beschrieben: http://de.wikipedia.org/wiki/A*-Algorithmus
Wäre es möglich, dass mir jemand einen Beispielcode für (Borland) C++ Anfertigt?
Am besten ein Beispielprojekt hochläd? (Ich weiß, hört sich jetzt nach "hier macht mal und ich freu mich denn über die getahne Arbeit" an.. aber im Moment fehlt es mir einfach am Können es in C++ umzusetzen und so lerne ich es am besten)Ich weiß nicht inwiefern sich einiege damit beschäftigen, vielleicht hat ja jm sogar schon ein Projekt auf lager?
-
SchweineKoenig schrieb:
aber im Moment fehlt es mir einfach am Können es in C++ umzusetzen und so lerne ich es am besten
Nein, tust du nicht.
Hast du schon mal Google bemüht? Bei mir spuckt das einige fertige A*-Implementierungen in C++ aus.
Edit: gehört zwar nicht unbedingt hierher, aber es irgendwie frage ich mich schon, wieso man als absoluter Anfänger A* brauchen sollte. Profitipp: man sollte imho als absoluter Anfänger nicht versuchen, Spiele in C++ schreiben - zumindest keine, die Wegfindung benötigen.
-
Klar habe ich schon mit google gesucht.. habe auch was gefunden, konnte diese Projekte aber nicht nutzen, da mir für die fertigen Programme irgendwelche Dateien gefehlt haben und die Textausschnitte machen erst garnicht was sie sollen.
Und naja.. als absoluter Anfänger würde ich mich nicht bezeichnen.. Habe schon ein Jahr mit Delphi und davor ein Jahr mit Visual Basic programmiert.. bin jetzt seit ein paar Wochen bei C++.. aber ein Profi bin ich auch noch lange nicht
Und Spiele will ich im Moment genausowenig programmiern.. dieses Thema interessiert mich und mir geht es ums verstehen und einfaches Anwenden.
-
http://www.heyes-jones.com/astar.html
http://www.policyalmanac.org/games/aStarTutorial.htm
http://www.codeguru.com/csharp/csharp/cs_misc/designtechniques/article.php/c12527/ - C# , aber das konzept ist das gleiche.
http://www.grinninglizard.com/MicroPather/index.htm
http://dotnetperls.com/pathfinding - C# , aber das konzept ist das gleiche.
-
Ja, diese Seiten kenne ich... aber wie gesagt.. entweder fehlen mir da irgendwelche Dateien oder der Code befindet sich in einer anderen Sprache (ja das Prinzip ist gleich, bringt mir nur nicht viel, wenn ich nicht weiß wie ich es in C++ umsetzen soll)
-
Also noch mehr Beispielcode als auf diesen Seiten angeboten wird, wirst du hier auch nicht bekommen. Es gibt auch bestimmt eine Reihe von Open-Source-Spielen, die eine Implementierung beinhalten. Die könntest du studieren.
Du kannst bei konkreten Problemen ja hier fragen, wenn du die Syntax oder sonstwas nicht verstehst. Aber komplett vorkauen wird es dir sicher niemand.
-
SchweineKoenig schrieb:
Ja, diese Seiten kenne ich... aber wie gesagt.. entweder fehlen mir da irgendwelche Dateien oder der Code befindet sich in einer anderen Sprache (ja das Prinzip ist gleich, bringt mir nur nicht viel, wenn ich nicht weiß wie ich es in C++ umsetzen soll)
Hör besser auf die Ratschläge, die man dir hier gibt. Die sind nicht böse gemeint. Wenn du nicht in der Lage bist, diesen fremden Code bei dir zum Laufen zu kriegen, fehlt es dir an grundlegenden Kenntnissen. Wenn du nicht in der Lage bist, Code anderer Sprachen in C++ umzusetzen, fehlt es dir ebenfalls an Grundlagen. Das schlechteste Ziel, was du dir nun setzen kannst, ist ein komplexes Spiel. Fang klein an, auch wenn es in deinen Augen nicht so viel Spaß macht, wie das Programmieren eines Warcraft 4. Eigne dir die wichtigsten Basics an, dann schreib vielleicht ein kleines Spielchen auf der Konsole usw. Nur Schritt für Schritt kommst du ans Ziel. Und wenn dein Ziel 'richtige' Spiele sind, dann sind dafür eben viele Schritte nötig. Der Versuch, diese Schritte allesamt auszulassen und Fremdcode zu verwenden, den man nicht im Ansatz versteht, wird scheitern.
-
Wenn du dir den Code vom ersten Link wirklich angeschaut hättest, hättest du direkt in den Kommentaren gelesen, was du hättest machen müssen, damit das Ding läuft. Oder du hast dir den Code angeschaut, kommst aber mit der Sprache nicht mal weit genug, dass du das verstehst.
Tipp: Da hätte man ne Zeile auskommentieren müssen und ein define ändern.
Fazit: Du bist noch nicht für A* bereit. Schreib erstmal Konsolenprogramme. Einen Taschenrechner zum Beispiel.
-
SchweineKoenig schrieb:
aber im Moment fehlt es mir einfach am Können es in C++ umzusetzen und so lerne ich es am besten
Wenn es dir an den Grundlagen von C++ fehlt, dann kannst du eben auch keinen A* programmieren. Zumal zum A* nur etwas logisches Denken, das Verständnis des Algorithmus und einfache C++ Grundlagen gehören. Da brauchst du ja nicht mal unbedingt objektorientierte Programmierung.
Kümmer dich um die Grundlagen, fang an etwas zu programmieren. Dann können wir dir hier auch bei Problemen helfen.