Feste Reihenfolge von dem Ablauf von Methoden

Mika34

Bekanntes Mitglied
Hallo an alle,

Ich versuche gerade ein Kartenspiel zu modellieren. Dort stoße ich gerade an ein Problem und ich weiß nicht so recht wie ich das handhaben soll.
Es geht darum, dass wenn eine Methode von diesen drei vorliegenden
Java:
faceFirstCase();
faceSecondCase();
faceThirdCase();
auf dem UserInterface aufgerufen wird, dann muss der nächste Befehl zwingend
Java:
handleFirstCase();
handleSecondCase();
handleThirdCase();
einer von diesen sein, wobei die immer paarweise zusammenhängend sind. Wie zum Beispiel: wenn faceSecondCase(); aufgerufen wird, dann ist die nächste Methode, welche dann folgen muss handleSecondCase();
Sollte ich hier eine Methode erstellen, welche dies berücksichtig oder all dies auf der funktionalen Ebene klären. Zweiteres würde dann aber definitiv gegen die Richtlinien der OO verstoßen, demnach vermute ich, dass ich eine Obermethode erstellen muss, welche diese Situation handhabt, jedoch bin ich da komplett überfragt.

Hat einer von euch so etwas ähnliches implementiert und kann mir sein Vorgehen schildern?
 
Zuletzt bearbeitet:

mihe7

Top Contributor
Du fragst im Endeffekt, wie Du zwei Methoden hintereinander ausführst. Antwort: ruf sie hintereinander auf.

Das Problem ist, ohne Beschreibung kann man da nichts dazu sagen, denn OO ohne Kontext funktioniert nicht.

Ein Kartenspiel hat normalerweise Spieler, die Karten auf der Hand haben, dann gibt es einen Tisch, auf dem die gespielten Karten liegen, es gibt meist einen Spieler, der an der Reihe ist usw. Das ergibt dann zusammen einen Spielstand, der durch eine Aktion in einen neuen Spielstand überführt wird. Das wäre mal so ein grobe Idee von einem Modell. Da kann ich irgendwelche abstrakten faceFirstCase() und handleSecondCase() nicht wirklich einordnen.
 

Mika34

Bekanntes Mitglied
Oh, nein es ging mir eher um die Frage, ob das Werfen einer Exception in der Methode selbst dann passieren sollte oder im UI.
Angenommen man führt
faceFirstCase();
aus.
Dann darf einzig und allein die nächste Methode nur
handleFirstCase();
sein. Wird eine andere Methode wie bspw.
handleSecondCase();
aufgerufen, soll eine Fehlermeldung ausgegeben werden. Das meinte ich damit
 

LimDul

Top Contributor
Damit wird es nicht klarer. Ein Programm wird immer sequentiell durchgeführt (ggf. in mehreren Threads).

Irgendwer ruft faceFirstCase() auf. Dann ruft der am Ende handleFirstCase() auf. Fertig, Reihenfolge sicher.

Und eine exception kannst nicht im "UI" werfen. Es muss immer in einer Methode geworfen werden, es gibt nur Code in Methoden. Ein omninöses UI gibt es nicht - es gibt nur Methoden, die aufgerufen werden.
 
K

kneitzel

Gast
Also ich verstehe das immer noch nicht. Sollen das Methoden sein, die der User triggert? Oder was soll das genau sein? Kannst Du bitte einmal genau schreiben, was das für Methoden sind und wann die wer aufruft?

Du bist doch der Entwickler. Also kannst Du doch sagen, was wie aufgerufen werden soll. Also wenn willst, dass nach faceFirstCase() handleFirstCase() aufgerufen wird, dann mach die private so dass die Methoden von außen nicht aufgerufen werden können und gibt nur eine Methode frei, die nacheinander beides aufruft.

Wenn es Event Handler der UI sind die auf Aktionen vom User stattfinden: Wenn der User das so nacheinander triggern kann, dann ist es nichts "exceptional", also kein Grund für eine Exception!

Wenn das eine eine UI Sache ist und das andere eine Reaktion darauf: Du musst doch irgendwo die Spielsteuerung haben. Und da muss dann sozusagen ein Event bekannt sein das dann das andere auslöst. Sprich: Die Logik muss ja irgendwo stecken ...

Aber wie gesagt: Beschreibe doch erst einmal genau, was da Sache ist....
 

Mika34

Bekanntes Mitglied
Also es geht darum, dass man Karten von einem Spieldeck zieht. Wenn eine bestimmte Karte gezogen wird, sagen wir Karte FirstCase als Objekt, dann wird die Methode handleCase aufgerufen, welche die aktuelle Situation handhabt und die Methoden:
Java:
handleFirstCase();

handleSecondCase();

handleThirdCase();
beinhaltet, welche je nach aktueller Situation dann ausgeführt werden (über einen Fallunterscheidung)
. Die aktuelle Situation sieht dann wie folgt aus:
Der Nutzer würfelt einen Spielwürfel. Dieser Spielwürfel hat von Situation zu Situation verschieden viele Augenzahlen. Im FirstCase 4, im SecondCase 6 und im ThirdCase 3. Deswegen habe ich die drei Methoden mit
Java:
handleFirstCase();
handleSecondCase();
handleThirdCase();
Ist die Augenzahl größer als eine Zahl x, dann ist die aktuelle Situation gewonnen worden, würfelt er jedoch eine Zahl kleiner der Zahl x, dann hat er verloren in dieser Situation.

Nun geht es darum, dass das Ziehen von der Karte vom Spielkartendeck und das Würfel nicht in einer Methode passier (also so habe ich es verstanden). Denn im späteren UserInterface sieht es dann so aus:
1.) Karte wird gezogen durch den Command des Nutzers in der Konsole
2.) Dann unterschieden, welcher Case es ist (Methode)
3.) Dann wird dementsprechend zurückgegeben, welcher Case vorliegt.
4.) Nun muss der Nutzer genau diese Würfel würfeln, welche in dieser Situation verlangt werden. ( Im FirstCase 4 Augen, im SecondCase 6 Augen und im ThirdCase 3 Augen)
Versucht der Nutzer hier beispielsweise nach dem Ziehen des FirstCases (wo der Würfel mit 4 Augen gewürfelt werden soll) einen Command in die Konsole zu schreiben, welcher den Würfel mit 6 oder 8 Augen würfeln soll, dann soll eine Fehlermeldung kommen, da er nur den Würfel mit 4 Augen in diesem Fall würfeln kann.
 

LimDul

Top Contributor
Du hast (hoffentlich) einen Controller, der das Spiel steuert. Der muss zu jedem Zeitpunkt wissen, welche Befehle erlaubt sind. Und entsprechend andere Befehle verbieten. Und der weiß auch, was passiert und muss halt entsprechend die Liste der erlaubten Befehle entsprechend der passierten Aktionen anpassen.
 

Mika34

Bekanntes Mitglied
Wie kann man das am Besten in die Tat umsetzen. Man lässt dann ja quasi das ganze Spiel über ihn laufen. So habe ich es bis jetzt auch implementiert, aber bei mir hakt noch der Informationsgehalt dieses Controllers. Wie kann man dem am Besten die Informationen geben?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M JComboBox feste double Werte zu ordnen Java Basics - Anfänger-Themen 8
Z ArrayList direkt feste Größe mitgeben Java Basics - Anfänger-Themen 13
M Feste Größe des JFrames - Problem mit Dimension Java Basics - Anfänger-Themen 6
D Klassen Feste und veränderbare Typen in Hierarchien Java Basics - Anfänger-Themen 5
N Feste Hardcodierte Pfade im Quellcode Java Basics - Anfänger-Themen 6
T JSpinner feste Spaltenbreite? Java Basics - Anfänger-Themen 3
G Feste Fenstergröße? Java Basics - Anfänger-Themen 4
G Keine feste Länge bei Objekten, warum nur Zeiger? Java Basics - Anfänger-Themen 8
G JLabel feste größe geben!? Java Basics - Anfänger-Themen 3
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
D Methode: Array Reihenfolge tauschen Java Basics - Anfänger-Themen 3
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
J Methoden Die Reihenfolge der Iterator-Elemente umkehren Java Basics - Anfänger-Themen 3
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
D Array Elemente sortieren in aufsteigender Reihenfolge Java Basics - Anfänger-Themen 10
D Methoden nach einer bestimmten Reihenfolge ausführen. Java Basics - Anfänger-Themen 20
I Array in umgekehrter Reihenfolge - Erklärung - Java Basics - Anfänger-Themen 3
R Werte und Reihenfolge in 2d Arrays vergleichen Java Basics - Anfänger-Themen 5
Q Besitzen zwei Strings identische Buchstaben, nur in anderer Reihenfolge? Java Basics - Anfänger-Themen 10
H Knoten-Reihenfolge einer LinkedList invertieren Java Basics - Anfänger-Themen 11
L Richtige Reihenfolge der Dateien Java Basics - Anfänger-Themen 5
C Werte im Vector in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 14
C Vector-Inhalt in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 6
A String in umgekehrter Reihenfolge ausgeben Java Basics - Anfänger-Themen 7
L Reihenfolge Ausgabe Java Basics - Anfänger-Themen 5
J Algorithmus - Strings auf eigene Reihenfolge miteinander vergleichen Java Basics - Anfänger-Themen 4
D TAB Reihenfolge im JSinner Java Basics - Anfänger-Themen 1
RowdyN Methoden Befehle in zufälliger Reihenfolge ausführen lassen Java Basics - Anfänger-Themen 5
B Arrays in Reihenfolge vertauschen Java Basics - Anfänger-Themen 6
J Reihenfolge im Vector lässt sich nicht drehen Java Basics - Anfänger-Themen 9
M Array Reihenfolge umdrehen Java Basics - Anfänger-Themen 9
J Klassen Reihenfolge beim Aufruf von Klassen Java Basics - Anfänger-Themen 1
L zweidimensionales char array reihenfolge ändern ? Java Basics - Anfänger-Themen 2
S Warum muss ich die operationen mit AffineTransform in umgekehrter Reihenfolge ausfuehren..? Java Basics - Anfänger-Themen 4
M Reihenfolge von Testmethoden in JUnit beeinflussen Java Basics - Anfänger-Themen 2
M Ausgabe in falscher Reihenfolge Java Basics - Anfänger-Themen 7
S Vokal Reihenfolge Java Basics - Anfänger-Themen 1
C if Reihenfolge Java Basics - Anfänger-Themen 2
W String von hinten alle drei Zeichen abschneiden und in umgekehrter Reihenfolge ausgeben. Java Basics - Anfänger-Themen 9
F Reihenfolge des Quelltexts Java Basics - Anfänger-Themen 6
S Jede Reihenfolge einer zufällig langen Liste ausprobieren Java Basics - Anfänger-Themen 3
B AffineTransform - Reihenfolge der Operationen Java Basics - Anfänger-Themen 3
B Methoden Logische Reihenfolge in Programmen? Java Basics - Anfänger-Themen 4
D Problem mit Initialisierung und Reihenfolge Java Basics - Anfänger-Themen 10
O Zwingende Reihenfolge von Methoden Java Basics - Anfänger-Themen 33
P Vereinfachte for-Schleife wird in umgekehrter Reihenfolge ausgewertet Java Basics - Anfänger-Themen 7
X Collections Reihenfolge bestimmter Objekte in einer ArrayList verändern Java Basics - Anfänger-Themen 2
S Buttons übereinander legen - Reihenfolge Java Basics - Anfänger-Themen 2
G Zahlen in zufälliger Reihenfolge ausgeben/speichern. Java Basics - Anfänger-Themen 2
R Reihenfolge im Konstruktor der Objekte Java Basics - Anfänger-Themen 13
L Properties Reihenfolge vorgeben Java Basics - Anfänger-Themen 13
N Reihenfolge von Methoden Java Basics - Anfänger-Themen 5
F Reihenfolge in der Events abgearbeitet werden Java Basics - Anfänger-Themen 2
A Wörter umgekehrten Reihenfolge ausgeben Java Basics - Anfänger-Themen 3
A Reihenfolge bei equals() Java Basics - Anfänger-Themen 2
K Reihenfolge Modifikatoren Java Basics - Anfänger-Themen 6
U Zuweisungen - Reihenfolge Java Basics - Anfänger-Themen 9
S Falsche Reihenfolge von Methodenaufrufen Java Basics - Anfänger-Themen 8
G Array Reihenfolge ändern Java Basics - Anfänger-Themen 6
M Reihenfolge von Objekten im Vektor Java Basics - Anfänger-Themen 3
A Liste von Listen mit fester reihenfolge Java Basics - Anfänger-Themen 6
P Frage zu OO (Reihenfolge der Klassen) Java Basics - Anfänger-Themen 2
G Feld in umgekehrter Reihenfolge an zweites Feld übergeben Java Basics - Anfänger-Themen 5
T Reihenfolge von Strings prüfen Java Basics - Anfänger-Themen 3
B Stack mit Strings in zufälliger Reihenfolge füllen Java Basics - Anfänger-Themen 4
K Array umgedrehte Reihenfolge Java Basics - Anfänger-Themen 2
M String Reihenfolge umkehren Java Basics - Anfänger-Themen 2
M Array anders sortieren, aber die Reihenfolge beibehalten Java Basics - Anfänger-Themen 4
V Reihenfolge von Befehlen - hier repaint() zu spät Java Basics - Anfänger-Themen 13
N Zahlen einlesen und in umgekehrter Reihenfolge ausgeben Java Basics - Anfänger-Themen 5
D Array in umgekehrter Reihenfolge Java Basics - Anfänger-Themen 4
A Reihenfolge erfassen Java Basics - Anfänger-Themen 11
A String Zeichen löschen in einer bestimmten Reihenfolge Java Basics - Anfänger-Themen 25
G Zahlen in umgekehrter Reihenfolge ausgeben Java Basics - Anfänger-Themen 6
A Exception Reihenfolge Java Basics - Anfänger-Themen 3
M Sorry,ne blöde Frage Focus setzen und Focus Reihenfolge Java Basics - Anfänger-Themen 15
L Reihenfolge der Methodenaufrufe Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
K For-Schleifen Ablauf Java Basics - Anfänger-Themen 5
CptK Klassen JPanel nach Ablauf der Spielzeit neuladen Java Basics - Anfänger-Themen 2
E Allgemein Verständnissfrage zum Ablauf mehrerer Threads Java Basics - Anfänger-Themen 4
H Modifizierte ArrayList für weiteren Ablauf beibehalten? Java Basics - Anfänger-Themen 12
M Einfacher Fenster-Ablauf Java Basics - Anfänger-Themen 5
R Programm nach ablauf eines Timers beenden Java Basics - Anfänger-Themen 10
K Zeit ablaufen lassen und nach Ablauf beenden Java Basics - Anfänger-Themen 5
J Ablauf im Skript/ Applet Java Basics - Anfänger-Themen 4
A Ablauf von Bytecode Transformation Java Basics - Anfänger-Themen 10
M Frage zum Ablauf eines Threads Java Basics - Anfänger-Themen 5
G Prinzipieller Ablauf bei Servlets Java Basics - Anfänger-Themen 25
W Eine Methode, mehrfacher gleichzeitger Ablauf möglich? Java Basics - Anfänger-Themen 2
L Ablauf abbrechen und zurück Java Basics - Anfänger-Themen 20

Ähnliche Java Themen

Neue Themen


Oben