Hallo,
ich habe da ein Problem, welches mir immer wieder mal unter die Augen kommt und mich extrem nervt. Und zwar geht es um Entscheidungsfindungen. Beispw. kommt die Figur an eine Kreuzung. Sie kann sich entscheiden in welche Richtung sie laufen soll. Am Besten in die Richtung, in der in Sichtweite etwas wertvolles liegt. Falls es mehrer Richtung mit einem sichtbaren Gegenstand gibt, dann soll random entschieden werden. Genauso falls alle Gänge leer sind.
Dann soll auch noch geprüft werden, ob ein Wärter in dem Gang steht (in dem einfach im Array ein Feld weiter geprüft wird, ob ein Wärterobjekt vorhanden ist). Ist dies der Fall, soll die Figur die Flutcht ergreifen und wenn möglich nicht in die Richtung laufen, aus die die Figur gekommen ist.
Meine Methoden sehen schon in den einfachsten Fällen wie eine Katastrophe aus verschachtelten if-Anweisungen und Switchblöcken aus.
Das funktioniert dann in etwa so:
- Prüfe ob eine Kreuzung vorhanden ist
- Falls ja, dann prüfe ob es einen alternativen Weg gibt, vorzugsweise nicht der, aus dem man gekommen ist und natürlich...zufällig.
- Prüfe alle Richtungen, außer der aktuellen, ob ein Hindernis da ist
- prüfe nochmal ob ein Gegenstand in einem Weg liegt.
- Wenn ja, auch in den anderen wegen?
- Wenn nein, dann....
Und so läuft das in einer Tour.
Deshalb meine Frage:
Gibt es dafür irgendeine effiziente und vor allem elegante Lösung?
Mich nervten diese ganzen verschwachtelten if-Anweisungen und Riesenmethoden einfach so sehr, aber mir fiele nicht ein, wie ich das auch bei mehreren zu treffenden Entscheidungen kurz und knapp halten kann.
Danke fürs lesen....
ich habe da ein Problem, welches mir immer wieder mal unter die Augen kommt und mich extrem nervt. Und zwar geht es um Entscheidungsfindungen. Beispw. kommt die Figur an eine Kreuzung. Sie kann sich entscheiden in welche Richtung sie laufen soll. Am Besten in die Richtung, in der in Sichtweite etwas wertvolles liegt. Falls es mehrer Richtung mit einem sichtbaren Gegenstand gibt, dann soll random entschieden werden. Genauso falls alle Gänge leer sind.
Dann soll auch noch geprüft werden, ob ein Wärter in dem Gang steht (in dem einfach im Array ein Feld weiter geprüft wird, ob ein Wärterobjekt vorhanden ist). Ist dies der Fall, soll die Figur die Flutcht ergreifen und wenn möglich nicht in die Richtung laufen, aus die die Figur gekommen ist.
Meine Methoden sehen schon in den einfachsten Fällen wie eine Katastrophe aus verschachtelten if-Anweisungen und Switchblöcken aus.
Das funktioniert dann in etwa so:
- Prüfe ob eine Kreuzung vorhanden ist
- Falls ja, dann prüfe ob es einen alternativen Weg gibt, vorzugsweise nicht der, aus dem man gekommen ist und natürlich...zufällig.
- Prüfe alle Richtungen, außer der aktuellen, ob ein Hindernis da ist
- prüfe nochmal ob ein Gegenstand in einem Weg liegt.
- Wenn ja, auch in den anderen wegen?
- Wenn nein, dann....
Und so läuft das in einer Tour.
Deshalb meine Frage:
Gibt es dafür irgendeine effiziente und vor allem elegante Lösung?
Mich nervten diese ganzen verschwachtelten if-Anweisungen und Riesenmethoden einfach so sehr, aber mir fiele nicht ein, wie ich das auch bei mehreren zu treffenden Entscheidungen kurz und knapp halten kann.
Danke fürs lesen....
Zuletzt bearbeitet: