Generelles Problem: Entscheidungsfindung

wef34fewrg

Aktives Mitglied
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....
 
Zuletzt bearbeitet:

Khal Drogo

Bekanntes Mitglied
Hast du überhaupt Schleifen verwendet?
Ist jetzt ein bisschen schwer für uns, weil wir eigentlich nur raten können, was du gemacht hast.

Mit freundlichen Grüßen
Xelsarion
 

Major_Sauce

Bekanntes Mitglied
Nabend,

Ich denke, es wäre tatsächlich am einfachsten, einen Array anzulegen, der Zahlen beinhaltet. Länge des Arrays = Anzahl der möglichen Richtungen.

Nun machst du einfach eine for-Schleife, die eine Zahl "i" bis zur anzahl der möglichen Richtungen hochzählt.
In dieser schleife machst du die Abfrage, ob in gang "i" ein Gegenstand ist. Wenn ja, erhöhst du im array die zahl um 1.
Als nächstes machst du die Abfrage, ob da ein Wächter drin is. Wenn ja, verkleinerst du die Zahl im Array um 1.
Das kannst du mit weiteren möglichen abfragen machen. Bei positiven sachen immer erhöhen, bei negativen immer verringern.
Zum Beispiel: Schlafplatz vorhanden ? Wenn ja dann erhöhen.

Am Ende musst du nur noch durch den Array gehen und schauen welche id den größten Wert hat, diese ist dann die besste Richtung.

Ich hoffe du hast verstanden was ich meine, wenn nicht einfach fragen dass schilder ich das ein bisschen genaue.

mfg Major
 

wef34fewrg

Aktives Mitglied
@Xelsarion
Tut mir Leid, dass ich dir jetzt kein Beispiel geschrieben habe. Hab eure Nachrichten jetzt erst gelesen und Major_Sauces Antwort finde ich perfekt so.

@Major_Sauce
Ja, ich denke ich verstehs und die Lösung halte ich für genial einfach. Also einfach gut. Danke dafür. :)
 

Major_Sauce

Bekanntes Mitglied
Kein Problem. Wenn du das nicht hinbekommst kannst dich gern nochmal melden, dann bekommst du Beispielcode bzw Pseudocode, kommt drauf an ob du mich grad auf der Arbeit erwischt oder nicht.

mfg Major
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A [HILFE] - Minecraft-Problem! Spiele- und Multimedia-Programmierung 1
C Plugin Problem Spiele- und Multimedia-Programmierung 2
J JLayer Problem Spiele- und Multimedia-Programmierung 1
Meeresgott LWJGL 3 Problem mit einer Texture Spiele- und Multimedia-Programmierung 4
G Low Poly 3D LWJGL Shader Problem Spiele- und Multimedia-Programmierung 4
O Problem beim Aufrufen des Spiels von einem Menü Spiele- und Multimedia-Programmierung 7
G LIBGDX Texturen Problem Spiele- und Multimedia-Programmierung 1
G LIBGDX Problem beim resizen des Frames Spiele- und Multimedia-Programmierung 3
C AutoClicker Problem Spiele- und Multimedia-Programmierung 2
S OOP Logik Problem Spiele- und Multimedia-Programmierung 5
G LIBGDX Viewport Problem Spiele- und Multimedia-Programmierung 3
J Problem mit Game Of Life Spiele- und Multimedia-Programmierung 3
N Problem mit 2D Spiel Spiele- und Multimedia-Programmierung 17
C Minecraft Minecraft Plugin Problem Spiele- und Multimedia-Programmierung 17
R Pong Spiel Problem Spiele- und Multimedia-Programmierung 1
V Problem mit BufferStrategy Spiele- und Multimedia-Programmierung 2
Streeber Problem mit Transparenz/TextDrawing in LWJGL/Slick2d (OpenGL) Spiele- und Multimedia-Programmierung 1
E A-Stern Algorithmus Problem und Implementierung einer Map Spiele- und Multimedia-Programmierung 6
T LWJGL 2.9.2: Seltsamer Effekt beim Rendern (VertexShader Problem?) Spiele- und Multimedia-Programmierung 3
T Problem bei Kollisionsabfrage Spiele- und Multimedia-Programmierung 4
C Vier Gewinnt Problem mit Ordnerstruktur Spiele- und Multimedia-Programmierung 2
T Problem mit Eclipse (java)-(minecraft) Spiele- und Multimedia-Programmierung 3
I Textbasiertes Spiel - Umsetzungsfrage & Schleifen Problem Spiele- und Multimedia-Programmierung 26
M Sound Problem Spiele- und Multimedia-Programmierung 3
T Problem beim Aufbau des Spielfelds Spiele- und Multimedia-Programmierung 18
M Sound Engin Problem 2 Spiele- und Multimedia-Programmierung 2
J Problem bei der GUI - Zu viele Spielbretter Spiele- und Multimedia-Programmierung 2
D LWJGL gluLookAt "Umschauen" Problem Spiele- und Multimedia-Programmierung 0
D Problem mit Würfelanimierung in LWJGL Spiele- und Multimedia-Programmierung 7
C Zeldaklon Problem mit Wand-Kollision Spiele- und Multimedia-Programmierung 8
0 Boxen übereinander stapelt Problem Spiele- und Multimedia-Programmierung 5
D Textfield im Game ,Problem: while-Schleife Spiele- und Multimedia-Programmierung 3
R 2D platformer - enemy damage -> TIMER PROBLEM Spiele- und Multimedia-Programmierung 3
S LWJGL Kamera Problem - Alles verzerrt Spiele- und Multimedia-Programmierung 4
B LWJGL StackOverFlow Problem nach 30sekunden. (Pong) Spiele- und Multimedia-Programmierung 2
Seikuassi LWJGL-Problem Spiele- und Multimedia-Programmierung 2
L Minecraft Minecraft Plugin programmieren (Craftbukkit 1.7.2) Problem Spiele- und Multimedia-Programmierung 4
B Minecraft mehr Ram zuweißen Problem Spiele- und Multimedia-Programmierung 0
K Bukkit Plugin Problem Spiele- und Multimedia-Programmierung 3
Y Problem mit repaint() in run() Spiele- und Multimedia-Programmierung 2
X Kleines Problem mit Java Reflections und einem eigenen Eventhandler Spiele- und Multimedia-Programmierung 1
T Problem mit Kollisionsabfrage der NPC Spiele- und Multimedia-Programmierung 1
J Minecraft Problem mit dem JRE - Minecraft Spiele- und Multimedia-Programmierung 3
TheSorm Problem mit 2 classen NullPointerException Spiele- und Multimedia-Programmierung 1
S Problem mit 4 gewinnt(MinMax Algorithmus) Spiele- und Multimedia-Programmierung 2
N Problem in der Main.class Spiele- und Multimedia-Programmierung 1
J Blöcke, Hitboxen, Koolisionsabfrage - Problem Spiele- und Multimedia-Programmierung 8
S Problem mit 3d-Polygon Spiele- und Multimedia-Programmierung 2
A Problem mit Sound Spiele- und Multimedia-Programmierung 5
C Nxt Duell Problem Spiele- und Multimedia-Programmierung 4
F LWJGL Problem mit Erstellen eines Objekts und der Kamera Spiele- und Multimedia-Programmierung 5
ruerob Problem bei Fade-Out von Sounds Spiele- und Multimedia-Programmierung 3
L [Slick2D] Problem bei Speicherfreigabe Spiele- und Multimedia-Programmierung 2
M Bukkit Plugin Problem Spiele- und Multimedia-Programmierung 22
T Java3D Rendering Problem Spiele- und Multimedia-Programmierung 7
J Problem bei pixelgenauer Kollisionsabfrage Spiele- und Multimedia-Programmierung 10
F Problem mit dem Abspielen von byte[] (Audioprogrammierung) Spiele- und Multimedia-Programmierung 2
C Problem mit Abspielen von Audio-Dateien Spiele- und Multimedia-Programmierung 3
R Problem bei Farbe ändern/4Gewinnt Spiele- und Multimedia-Programmierung 5
R StringIndexOutOfBoundsException - Problem Spiele- und Multimedia-Programmierung 2
S Problem mit Sichtfeld/Licht in einem Raster Spiele- und Multimedia-Programmierung 5
G Acht-Damen-Problem HILFE! Spiele- und Multimedia-Programmierung 11
A TileMap KeyListener - Problem Spiele- und Multimedia-Programmierung 2
J Problem mit Threads Spiele- und Multimedia-Programmierung 8
N Problem mit Kollisionsabfrage beim Fallen Jump & Run Spiele- und Multimedia-Programmierung 5
S Problem mit Zeitsteuerung der Game Loop Spiele- und Multimedia-Programmierung 4
Fu3L Problem mit 3D Noise Spiele- und Multimedia-Programmierung 4
L Problem beim Rätsellöser Spiele- und Multimedia-Programmierung 3
D Problem beim bewegen einer Figur Spiele- und Multimedia-Programmierung 2
T Problem bei LinkedList / JPanel Spiele- und Multimedia-Programmierung 4
T Problem mit ClassLoader und LWJGL Spiele- und Multimedia-Programmierung 5
M Scrolling Repaint Problem Spiele- und Multimedia-Programmierung 2
Samake03 [Problem] layeredPane bzw. Viewport Spiele- und Multimedia-Programmierung 3
Helgon glTexParameter / glTexImage2D Problem Spiele- und Multimedia-Programmierung 11
T Jmonkey opengl problem Spiele- und Multimedia-Programmierung 13
M Problem mit Kamera (glMultMatrix (OpenGL/ LWJGL)/ Quaternionen) Spiele- und Multimedia-Programmierung 5
M Problem mit Gameserver / Datensynchronisation Spiele- und Multimedia-Programmierung 10
G Mein erstes minigame -> problem mit Methode Spiele- und Multimedia-Programmierung 3
X Geometry Wars Clone Problem Spiele- und Multimedia-Programmierung 4
H Problem mit JMonkeyEngine3 und OgreXML Spiele- und Multimedia-Programmierung 3
D [JOGL 2.0] Kleines Problem mit freier Flugsteuerung Spiele- und Multimedia-Programmierung 3
A JAVA3D TransformGroup <--> Group Problem Spiele- und Multimedia-Programmierung 3
U [JOGL 1.1.1a]Kleines Problem mit Text Overlays: Spiele- und Multimedia-Programmierung 19
T Problem mit JnR-Steuerung / KeyListener Spiele- und Multimedia-Programmierung 6
D Problem Mit Miensweeper Clone & rekursive Methode Spiele- und Multimedia-Programmierung 4
M Performance Problem bei BufferedImage Spiele- und Multimedia-Programmierung 7
T Problem mit Speicherverbrauch Spiele- und Multimedia-Programmierung 5
S Programmstruktur Problem! Spiele- und Multimedia-Programmierung 8
BattleMaster246 Problem mit Jogl Spiele- und Multimedia-Programmierung 14
C MP3 Handler-Problem Spiele- und Multimedia-Programmierung 13
C [gelöst] MP3-Codec-Problem Spiele- und Multimedia-Programmierung 2
K Schiebepuzzle Array Zufallszahlen Problem Spiele- und Multimedia-Programmierung 8
J Java 3D Problem Spiele- und Multimedia-Programmierung 2
G Eclipse Problem mit Java3d Spiele- und Multimedia-Programmierung 3
H Repaint-Problem mit Quaxlis Tutorial Spiele- und Multimedia-Programmierung 2
C Java Sound API Clip.Close() Problem Spiele- und Multimedia-Programmierung 1
K Problem beim Anzeigen von Bildern Spiele- und Multimedia-Programmierung 5
D Problem mit Überprüfung beim Lottospiel Spiele- und Multimedia-Programmierung 6
D Problem beim Öffnen einer PHP für eine Highscore Spiele- und Multimedia-Programmierung 5
A KeyListener - Thread Problem Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen

Neue Themen


Oben