Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » A* - Algorithmusvariante » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Der letzte Beitrag
Tommy1234 A* - Algorithmusvariante

Hallo,

ich habe folgendes Problem und es geht dabei um den A*-Algorithmus.

In meinem kleinen Programm wird ein quadratisches Gitter angezeigt mit 32x32 großen Kacheln. Manche Kacheln sind ausgefüllt und sind nicht begehbar.
Dazu kommt noch ein Spieler, den ich nach verdammt langer Zeit dazu gebracht habe den vom A* berechneten Pfad sauber abzulaufen.

Nun habe ich aber wieder mal ein Problem, wenn ich auf ein begehbares Feld ( das übrigens aus Knoten besteht ) klicke, läuft der Spieler unter Berücksichtigung der nicht-begehbaren Felder gemäß dem Pfad dorthin.

Wenn ich aber auf ein nicht begehbares Feld klicke passiert gar nichts und das will ich nicht. Stattdessen möchte ich, dass der Pfad bestmöglich bis zu diesem nicht-begehbaren Feld berechnet wird.

Zunächst denke ich, dass man zwei Pfade berechnen sollte, den einen ganz normal, bei dem anderen die closedListe durchgehen und den Knoten finden, der dem Zielknoten am nächsten ist und dann den Pfad zu diesem neuen Ziel neuberechnen.

Aber jetzt kommt mein Problem:
Wie finde ich den Knoten, der dem Ziel am nächsten ist?
Außerdem habe ich vor mehrere nicht-begehbare Felder hintereinander zu platzieren also größer zu machen und wie bekomme ich dann den Knoten der dem Ziel am nächsten ist?

Gruß Tommy