Aloha,
Ein kleines Strategiespiel hätte gerne Wegfindung für Einheiten. Dazu habe ich, da es sich prima auf den bereits existierenden Datenstrukturen machen lässt und ich keinen Graphen extra bauen muss, eine Breitensuche implementiert. Im Grunde mache ich also so etwas wie FloodFill und gucke nach, ob ich das Ziel erreiche. Dann existiert ein Weg, den man nur noch abschreiten muss.
Das ganze spielt sich auf HexTiles ab, und auf jedem Tile kann nur genau eine Einheit stehen. Und da nur Geister durch Wände gehen können, muss der Weg um Einheiten, die im Weg stehen, drumrumgeführt werden.
Das führt dazu, dass man z.B. Landengen einfach blockieren kann: Einheiten hinstellen, und schon
existiert kein weg mehr. Wie das gedacht ist, sieht man hier:
Jetzt nehmen wir mal an, auf der Landenge eine Einheit. Dann müsste man ja eigentlich so weit gehen, wie geht, und dann da stehen bleiben. Hier mal ein Bild, wie es aussehen sollte.
Das geht aber nicht. Da das Zielfeld nicht erreichbar ist, wird
kein Weg gefunden, und nix bewegt sich.
Das kann man sogar taktisch ausnutzen, um rauszubekommen, ob z.B. der Gegner da steht. Bewegt sich die Einheit, ist er nicht da. Bewegt sie sich, ist niemand im Weg.
Irgendwie müsste man also einen Weg ausrechnen, der bis vor das Hindernis geht. Und ich habe keine Ahnung wie man das machen kann, so dass aber trotzdem Einheiten, die man umgehen kann, auch umgangen werden.
Hat jemand kreative Ideen? Knoble da jetzt schon ein paar Tage dran, leider erfolglos... Ist bestimmt ein Fall von Betriebsblindheit.
Danke,
Martok
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."