Frage von tosmile01, 66

Java Grundlagen Text adventure?

Ich möchte eine kleine Textadventure programmieren, aber mir fehlen die Grundlagen... vielleicht weiss jemand von euch gerade wie man...

  • Eine Textausgabe macht
  • Eine Zeitverzögerung (5sek.)
  • Abfrage (y/n)
  • und je nachdem eine Weiterleitung

Weiss das gerade jemand? ^^

Antwort
von xNeco, 41

Textausgabe:

System.out.println("hier steht dein Text, achte auf die Gänsefüßchen");

Zeitverzögerung: 

Thread.sleep(5000);

Die Zeit ist in Millisekunden angegeben. Für 5 sekunden brauchst du also 5000 Millisekunden. 

Abfrage:

String ask;

System.out.println("Für Ja schreiben Sie [y], für Nein [n]");

ask = InOut.readString("");

Rein theoretisch kannst du den Text "Für Ja schreiben Sie [y], für Nein [n]" auch in die Klammer hinter dem InOut.readString("") setzen. Musst du allerdings.

InOut.readString("") ist die eingabefunktion. ask = InOut.readString("") bedeutet, dass der Stringvariable 'ask' durch Eingabe des Benutzers ein Wert, in dem Fall ein String, also ein Wort/Satz, zugewiesen wird.

Weiterleitung:

Was du mit weiterleitung meinst, weiß ich nicht. Ich kann dir allerhöchstens eine Vorlage für eine Fallunterscheidung liefern:

if(ask.equals("y")){

//weiter Anweisung, was passsieren soll, wenn 'y' eingetippt wurde

}

else if(ask.equals("n")){

//weiter Anweisung, was passieren soll, wenn 'n' eingetippt wurde

}

Wichtig, dass du die funktion .equals(''") verwendest. Mit ihr werden 2 String miteinander verglichen. In diesem Fall der String der in der Variable ask eingespeichert wurde mit den Möglichkeiten 'y' und 'n'.

Wenn für ask 'y' eingegeben wurde, liefert die .equals Funktion einen boolean Wert zurück, also true oder false. 

Also wenn für ask 'y' eingegeben wurde, ist die erste If-Anweisung == true und wird ausgeführt.

Ich hoffe ich konnte dir ausreichend helfen ;)

Kommentar von SirPigelton ,

Statt Thread.sleep würde ich eher zu TimeUnit.SECONDS.sleep(x) raten, da dies einfacher zu lesen ist.

Kommentar von KnusperPudding ,

Kannte ich auch noch nicht. Merk ich mir. Danke.

Kommentar von xNeco ,

stimmt, da hast du Recht

Antwort
von Mornamath, 44

ehm, also nach den Fragen geh ich mal davon aus, dass du noch überhaupt keine Erfahrung mit irgendeiner Programmiersprache hast...

Textausgabe kommt drauf an, ob du es in der Konsole haben willst oder in einem Fenster.  In einem Fenster brauchst du eine Komponente, die Text anzeigen kann und musst diese dann mit komponente.setText("TEXT") den Text anzeigen lassen.

In der Konsole wäre es System.out.println("TEXT");

eine Y/N Abfrage ist einfach nur eine if Schleife...

Eine Zeitverzögerung machst du mit sleep(zeitInMs);

Aber aufgrund deiner Fragen gehe ich davon aus, dass du wie schon gesagt noch gar keine Erfahrung hast.  Daher solltest du dir ersteinmal Tutorials anschauen, um Grundlagen zu lernen.  Google mal nach JAva ist auch eine Insel.  Ist eigentlich ein gutes Buch, das du online komplett lesen kannst.

Oder schau dir einfach Tutorials auf YouTube an.

Kommentar von xNeco ,

Nicht ganz. Um die korrekte Syntax zu verwenden muss er Thread.sleep() verwenden.

Kommentar von Mornamath ,

ja und um Fehler zu vermeiden muss er noch einen Exception catch schreiben.... is doch egal, er weiß doch offensichtlich sowieso noch nicht wirklich was über Java...  Er muss mit irgendwelchen Tutorials anfangen.

Kommentar von SirPigelton ,

Wann lernen Leute endlich das es keine 'if-Schleife' gibt..

http://www.if-schleife.de/

Kommentar von Mornamath ,

die Formulierung... wie wichtig für den Inhalt...

Kommentar von SirPigelton ,

Sehr wichtig, da eine Schleife nun mal etwas anderes ist als eine Abfrage. Sowas sollte man wissen.

Expertenantwort
von KnusperPudding, Community-Experte für Java, 24

Textventures bekomme ich mittlerweile öfter zu hören. 

Hier auf guteFrage gab es das Thema bereits, und einer hat ein Textventure in der Frage (besser gesagt als Link im Kommentarbereich auf meine Frage) bereitgestellt. 

Das ist eigentlich relativ simpel und gut leserlich. Vielleicht schaust du dir das einfach mal an.

Link zur original-Frage:

https://www.gutefrage.net/frage/wie-kann-ich-einen-countdown-fuer-world-of-zuul-...

Keine passende Antwort gefunden?

Fragen Sie die Community