Erste Schritte Zuul - 2ten Befehl einführen

Status
Nicht offen für weitere Antworten.

Devanther

Top Contributor
Parameter befehl

Wenn es kein zweites Wort gibt wird "Wohin möchten Sie gehen?" ausgegeben.

Wenn ich das Spiel starte und "take Buch" eingebe kommt:"
Es gibt keine Gegenstände im Raum
null"

Das heisst also dass die Methode findeGegenstandMitBeschreibung
schonmal aufgerufen wird....! Da fehlt nicht mehr viel.
 

temi

Top Contributor
Parameter befehl

Wenn es kein zweites Wort gibt wird "Wohin möchten Sie gehen?" ausgegeben.
Richtig. Der Parameter heißt befehl und ist vom Typ Befehl.
Du möchtest etwas aufheben, wenn es kein zweites Wort gibt, dann sollte was ausgegeben werden?
Was ist das zweite Wort?

Wenn ich das Spiel starte und "take Buch" eingebe kommt:"
Es gibt keine Gegenstände im Raum
null"

Das heisst also dass die Methode findeGegenstandMitBeschreibung
schonmal aufgerufen wird....! Da fehlt nicht mehr viel.
Uninteressant. Soweit sind wir nicht, wir sind gerade mal beim ersten Block.
 

Devanther

Top Contributor
Du möchtest etwas aufheben, wenn es kein zweites Wort gibt, dann sollte was ausgegeben werden?
Was ist das zweite Wort?

Das zweite Wort ist der Gegenstand. Es gibt unterschiedliche davon.

Wenn befehl ein zweites Wort hat wird die Methode gibZweitesWort()
aufgerufen.
 
Zuletzt bearbeitet:

temi

Top Contributor
Das zweite Wort ist der Gegenstand. Es gibt unterschiedliche davon.
Stimmt. Die Methode sollte bis hier jetzt ungefähr so aussehen:
Java:
private void nimmGegenstand(Befehl befehl)
    {
        if(!befehl.hatZweitesWort()) {
            // Gibt es kein zweites Wort, wissen wir nicht, welcher Gegenstand gemeint ist
            System.out.println("Was möchtest du nehmen?");
            return;
        }

Was macht der nächste Befehl?
Ist es sinnvoll, dass die Variable "richtung" heißt?
 

Devanther

Top Contributor
Wenn befehl ein zweites Wort hat wird die Methode gibZweitesWort()
aufgerufen.

Ja, es ist sinnvoll, denn das zweite Wort ist in dem Fall die Richtung, north, west, east, south.
Und wir brauchen jetzt hier das zweite Wort für den Gegenstand eben!
 

temi

Top Contributor
Dein Problem ist, dass du das Zusammenspiel deiner einzelnen Klassen nicht verstanden hast.
Die Klasse Befehl enthält das, was du eingibst aufgeteilt in Befehlswort und zweites Wort.
>go north => Befehlswort = go, zweites Wort = north
>take buch => Befehlswort = take, zweites Wort = buch
Du rufst irgendwo im Spiel, abhängig vom Befehlswort eine entsprechende Methode auf:
Befehlswort = go => wechsleRaum(befehl);
Befehlswort = take => nimmGegenstand(befehl);

Hast du bemerkt, dass der jeweilige Befehl als Parameter an die Methode übergeben wird?

Was steht demnach bei der Methode nimmGegenstand(befehl) im zweiten Wort?
 

Harry Kane

Top Contributor
Es ist wohl die Methode findeGegenstandMitBeschreibung.
Falsch geraten. Die Auswertung der Befehle findet in der Klasse Spiel statt, genauer in der Methode verarbeiteBefehl. Diese Methode ruft je nach Befehl andere Methoden von Spiel auf. Die von dir vermutete "findeGegenstandMitBeschreibung" Methode gehört aber zur Raum-Klasse.
Das heisst also dass die Methode findeGegenstandMitBeschreibung schonmal aufgerufen wird
Nochmal falsch. Es wird die Methode befehlTake aufgerufen. Diese wiederum ruft "System.out.println(aktuellerRaum.findeGegenstandMitBeschreibung(name))" auf, und verwendet dabei die Instanzvariable "name" aus der Spiel-Klasse als Parameter. Diese Variable wird aber nirgendwo initialisiert. Ergo wird "aktuellerRaum.findeGegenstandMitBeschreibung(null)" aufgerufen. Da es keinen Gegenstand mit der Beschreibung null gibt, gibt die Methode zunächst " Es gibt keine Gegenstände im Raum" aus, und gibt dann als Rückgabewert null zurück. Dieser Rückgabewert wird dann in der befehlTake-Methode ausgegeben.
 

Flown

Administrator
Mitarbeiter
Ich bin immer wieder verwundert, dass es Leute gibt die gegen Windmühlen kämpfen.

@Devanther Du stellst schon wieder Fragen: "Wie mach ich das?". Deine Themen laufen immer wieder gleich ab:
- Ich hab einen Fehler, warum?
- Forumshilfe
- [Optional: Wiederhole letzte 2 Schritte]
- Achja keinen Fehler mehr, warum geht das dann nicht, wie ich will?
- Forumshilfe
- Geht noch immer nicht, wie mach ich das?
- Forumshilfe
- [Wiederhole letzte 2 Schritte]

Der Thread zieht sich schon wieder über 6 Seiten. Wenn jetzt keine Fortschritte deinerseits kommen, wird dieser Thread wieder geschlossen.
Denn dieses Forum sollte in weiterer Folge vielen helfen, die dieses Thema suchen. Aber zurzeit ist es eine schrittweise Anleitung zur Lösung und ist nicht Sinn der Sache.
 

Harry Kane

Top Contributor
Harry Kane sagt, dass das Schwachsinn ist
Ich finde es übrigens ziemlich frech, mich so falsch zu zitieren. Obwohl es richtig gewesewn wärem
Harry Kane sagt, dass das Schwachsinn ist, ich kann die gewünschte Methode nicht aufrufen
Ich finds schon etwas frech, mich so falsch zu "zitieren".
Meinen Beitrag von gestern abend muss ich dahin gehend korrigieren, dass bei Eingabe von "take Buch" schon irgendwann die Methode "aktuellerRaum.findeGegenstandMitBeschreibung" aufgerufen wird. Sie bekommt aber keinen sinnvollen Parameter, und der Rückgabewert wird entweder (in der Methode "befehlTake") auf keine sehr sinnvolle Weise verwendet, oder (in der Methode "nimmGegenstand") auf eine vollkommen sinnlose, logisch und semantisch falsche Weise.
 

AndiE

Top Contributor
Ich finde, wir sollten mal Zuul Zuul sein lassen. Ich denke, dass der TE mal zeigen soll, was er kann.

Aufgabe:

Erstelle ein Programm aus drei Klassen, das zeigt, dass 7+5=12 und "Hallo "+"Welt"="Hallo Welt" ist. Erstelle dazu eine Klasse "AddTest", die Klassen "AddText" und "AddInt" aufruft. Diese enthalten beide die Methoden"setWert", "addWert" und "getWert" enthalen, und das Klassenattribut kapseln.

Bekommst du das ohne Hilfe hin? Dann poste den Code?
 

Devanther

Top Contributor
So habe jetzt alles gründlich gelesen!

Was steht demnach bei der Methode nimmGegenstand(befehl) im zweiten Wort?

Buch.

Ich finde es übrigens ziemlich frech, mich so falsch zu zitieren.

Sorry, war nicht so beabsichtigt.

Es wird die Methode befehlTake aufgerufen. Diese wiederum ruft "System.out.println(aktuellerRaum.findeGegenstandMitBeschreibung(name))" auf, und verwendet dabei die Instanzvariable "name" aus der Spiel-Klasse als Parameter. Diese Variable wird aber nirgendwo initialisiert. Ergo wird "aktuellerRaum.findeGegenstandMitBeschreibung(null)" aufgerufen. Da es keinen Gegenstand mit der Beschreibung null gibt, gibt die Methode zunächst " Es gibt keine Gegenstände im Raum" aus, und gibt dann als Rückgabewert null zurück. Dieser Rückgabewert wird dann in der befehlTake-Methode ausgegeben.

Das heisst, wenn ich die Variable "name" initialisiere müsste es funktionieren?
Wie mache ich das? Manchmal muss es "Buch" sein(im Raum Keller), in einem anderen Raum Büro, Computer.
Die Lösung ist wohl zum Greifen nah^^.
Irgendetwas muss mit "name" gemacht werden!

Ich weiss nicht wie ich das umsetzen soll.

edit:
Ich finde, wir sollten mal Zuul Zuul sein lassen

Ich würde gerne das Spiel zu Ende programmieren.
 

mrBrown

Super-Moderator
Mitarbeiter
Ich würde gerne das Spiel zu Ende programmieren.
Ich würde gern auf'm Mars spazieren. Mal gucken wer von uns eher seinen Wunsch erfüllt bekommt ;)

Das heisst, wenn ich die Variable "name" initialisiere müsste es funktionieren?
Wie mache ich das? Manchmal muss es "Buch" sein(im Raum Keller), in einem anderen Raum Büro, Computer.
Die Lösung ist wohl zum Greifen nah^^.
Irgendetwas muss mit "name" gemacht werden!
Nein, deine Überlegungen sind völliger Unsinn - genau wie das, was du bisher für die Methode geschrieben hast.
Und solange du das nicht selber siehst, hat es absolut keinen Sinn, damit weiter zu machen,
 

Devanther

Top Contributor
Ich würde gern auf'm Mars spazieren. Mal gucken wer von uns eher seinen Wunsch erfüllt bekommt ;)

Auf dem Mars gibts gar nichts interessantes ;-)

Nein, deine Überlegungen sind völliger Unsinn - genau wie das, was du bisher für die Methode geschrieben hast.
Und solange du das nicht selber siehst, hat es absolut keinen Sinn, damit weiter zu machen,

Also ich gebe im Spiel "take Buch" ein dann wird die Methode befehlTake() (Klasse Spiel) aufgerufen.
Diese ruft dann findeGegenstandMitBeschreibung(String name) (Klasse Raum) auf.
private void nimmGegenstand(Befehl befehl) (Klasse Spiel) verarbeitet den 2ten Befehl.

Lösung oder Tipp?:rolleyes:

Soll etwa nicht befehlTake() aufgerufen werden sondern nimmGegenstand(Befehl befehl) die dann
die Methode findeGegenstandMitBeschreibung(String name) aufruft?

So ähnlich also wie beim Befehl go...der wechsleRaum aufruft?
 

Flown

Administrator
Mitarbeiter
  1. Kein Fortschritt zu sehen
  2. Keine Tipps/Lösungsvorschläge umgesetzt
  3. Thread wieder mal 7 Seiten lang
  4. Nicht auf Fragen von Helfenden eingegangen
  5. CLOSED
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Erste Schritte Projekt Zuul Java Basics - Anfänger-Themen 192
L OOP World of zuul - Falltür? Java Basics - Anfänger-Themen 8
I Klassen Umsetzungsfrage zu Spiel "Zuul" Java Basics - Anfänger-Themen 3
S Die Welt von Zuul Java Basics - Anfänger-Themen 2
M jeden 2ten Buchstaben aus array Java Basics - Anfänger-Themen 6
X wie bekomme ich durch Eingabeaufforderung definierte double in einen Befehl, welcher 3 erwartete double braucht? Java Basics - Anfänger-Themen 3
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
Viktor A. Kaiser Ampelschaltung mit if-Befehl Java Basics - Anfänger-Themen 11
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
Lion.King switch-Befehl Java Basics - Anfänger-Themen 6
sserio Math. Befehl wird rot markiert Java Basics - Anfänger-Themen 5
F Terminal Windows per Befehl schließen? Java Basics - Anfänger-Themen 9
Y Wie kann man überprüfen, ob bei einem Print Befehl tatsächlich etwas geprintet wurde? Java Basics - Anfänger-Themen 4
H Befehl wird nicht ausgeführt - System.out.println Java Basics - Anfänger-Themen 3
A Scanner Befehl Java Anfänger Java Basics - Anfänger-Themen 8
K Subklassen mit einzigem Befehl addieren Java Basics - Anfänger-Themen 6
F cmd Befehl ausführen Java Basics - Anfänger-Themen 4
S Datenbank Befehl nach Login Java Basics - Anfänger-Themen 5
D Input/Output Befehl aus Benutzereingabe herausfiltern Java Basics - Anfänger-Themen 12
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27
N Javac -version der Befehl ist entweder falsch geschrieben oder...... Java Basics - Anfänger-Themen 8
O Methoden Runtime.getRuntime().exec(befehl); Java Basics - Anfänger-Themen 6
L Ist an diesem Befehl irgendwas falsch? Java Basics - Anfänger-Themen 2
F Wieso wird dieser Befehl nicht ausgeführt? (Anfänger) Java Basics - Anfänger-Themen 2
B Copy Paste Befehl Java Basics - Anfänger-Themen 6
O String: Befehl und Wert erkennen. Java Basics - Anfänger-Themen 4
D Erste Schritte Befehl back implementieren Java Basics - Anfänger-Themen 18
elischa unbekannter Befehl zur Compilezeit Java Basics - Anfänger-Themen 22
B Befehl um ein Befehl abzubrechen Java Basics - Anfänger-Themen 2
M Classpath Befehl zum Kompilieren um die Option classpath erweitern. Java Basics - Anfänger-Themen 5
F Konsolen Befehl ausführen und Rückgabe auswerten Java Basics - Anfänger-Themen 3
S Befehl current: Java Basics - Anfänger-Themen 3
Silvascus Void Methode einem Stringparameter im syso-Befehl hinzufügen Java Basics - Anfänger-Themen 3
slejden Erste Schritte der Befehl import Java Basics - Anfänger-Themen 2
C OOP array Sortieren ohne den sort Befehl Java Basics - Anfänger-Themen 10
J Problem WIE ohne Goto-Befehl lösbar? Java Basics - Anfänger-Themen 6
N Benötige eine Alternative für einen GOTO Befehl Java Basics - Anfänger-Themen 2
O CMD Befehl javac Java Basics - Anfänger-Themen 3
U Java Swing Timer mit ButtonKlick starten u. nach 12 Sekunden Befehl ausführen Java Basics - Anfänger-Themen 7
D Klassenmethode: Befehl erkennen, dann int zurückgeben Java Basics - Anfänger-Themen 2
C Desktopiconwechsel ohne Befehl Java Basics - Anfänger-Themen 0
V Schlüsselworte Befehl Ignorieren? Java Basics - Anfänger-Themen 10
B JDK installieren Befehl java funktioniert nicht Java Basics - Anfänger-Themen 15
J Variablen Auf der suche nach einem Befehl Java Basics - Anfänger-Themen 2
M Frage zum return; Befehl Java Basics - Anfänger-Themen 1
C CMD Befehl + Variable im Java-Code ausführen Java Basics - Anfänger-Themen 8
S Methoden auf befehl ausführen Java Basics - Anfänger-Themen 7
iB0T Eine Art Goto Befehl! Java Basics - Anfänger-Themen 27
H Exit Befehl in eigener Konsole Java Basics - Anfänger-Themen 9
D Erste Schritte bash-Befehl mit Swing ausführen Java Basics - Anfänger-Themen 8
A Schlüsselworte Befehl this Java Basics - Anfänger-Themen 8
E CMD Befehl über Java ausführen? Java Basics - Anfänger-Themen 4
E Warum wird Methode nicht durch return-Befehl beendet? Java Basics - Anfänger-Themen 3
D Hilfe zu Java Befehl In.open Java Basics - Anfänger-Themen 2
B Javadoc-Befehl unter Ubuntu Java Basics - Anfänger-Themen 2
I Befehl/Methode "los()" Java Basics - Anfänger-Themen 17
A Befehl gesucht....wie komme ich an Folgendes Objekt? Java Basics - Anfänger-Themen 6
I Return Befehl in Methode Java Basics - Anfänger-Themen 13
K Befehl per Shell an Java-Applet JAR übergeben Java Basics - Anfänger-Themen 16
S javac Befehl Java Basics - Anfänger-Themen 7
C Befehl zum Verlassen einer Schleife Java Basics - Anfänger-Themen 27
W Befehl ausführen bei Mausklick + gedrückte Strg-Taste Java Basics - Anfänger-Themen 2
B Befehl mit Priorität aufrufen Java Basics - Anfänger-Themen 4
I Befehl wird erst nach dem Ausführen einer Funktion ausgeführt Java Basics - Anfänger-Themen 4
K Problem mit h2 DB Insert Befehl Java Basics - Anfänger-Themen 6
B Befehl für vorselektierten Radiobutton Java Basics - Anfänger-Themen 2
H if-Befehl mit Buttongroup Java Basics - Anfänger-Themen 9
B assert befehl in netbeans Java Basics - Anfänger-Themen 3
M Objekto.Programm. Return-Befehl Java Basics - Anfänger-Themen 4
F Kann String in Befehl wandeln? Java Basics - Anfänger-Themen 12
F Simpler DrawLine - Befehl!? Java Basics - Anfänger-Themen 9
M Befehl zum Einlesen von Benutzereingaben Java Basics - Anfänger-Themen 1
M Befehl zum Fenster schließen? GUI Java Basics - Anfänger-Themen 3
L Do while Befehl verkürzen? Java Basics - Anfänger-Themen 16
-horn- Befehl an CMD übergeben Java Basics - Anfänger-Themen 15
A [Fehlermeldung]Sleep-Befehl Java Basics - Anfänger-Themen 4
B Befehl "javac" wird nicht erkannt Java Basics - Anfänger-Themen 14
S Befehl "javac" funktioniert und Windows 7 nicht? Java Basics - Anfänger-Themen 3
K Terminal Befehl mit Java unter Mac ausführen Java Basics - Anfänger-Themen 18
L Java Persistence API - Update Befehl? Java Basics - Anfänger-Themen 5
X Befehl import Java Basics - Anfänger-Themen 21
Antoras Explizite Typenumwandlung in einem Befehl Java Basics - Anfänger-Themen 3
A Button einen Befehl zuordnen Java Basics - Anfänger-Themen 7
N suche Datums befehl Java Basics - Anfänger-Themen 8
H Problem mit Tastatur Befehl Java Basics - Anfänger-Themen 11
J Kill befehl Java Basics - Anfänger-Themen 44
G java shell script starten und befehl übergeben Java Basics - Anfänger-Themen 3
Z Ant java -classpath befehl Java Basics - Anfänger-Themen 2
X JOptionPane.showMessageDialog(); - Import Befehl? Java Basics - Anfänger-Themen 4
K Befehl um am Anfang einer Methode zu kommen? Java Basics - Anfänger-Themen 9
G Befehl für Ende bei Switch-Auswahl Java Basics - Anfänger-Themen 11
K fehler mit der Befehl Console Java Basics - Anfänger-Themen 3
H Befehl mit Konstruktoren Java Basics - Anfänger-Themen 2
L Leider klappt bei mir ein Befehl nicht Java Basics - Anfänger-Themen 4
P Befehl zum einrücken der textausgabe? Java Basics - Anfänger-Themen 6
A Befehl ausführen beim Schließen der Konsole Java Basics - Anfänger-Themen 3
S Gibt es einen Befehl "Mausklick" o.ä? Java Basics - Anfänger-Themen 6
S Java-Programm ohne -jar Befehl? Java Basics - Anfänger-Themen 9
K Auf File- Befehl warten. Java Basics - Anfänger-Themen 10
T JDK installiert aber der Befehl "javac" funktionie Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben