Text-Adventure

Diskutiere Text-Adventure im Java Basics - Anfänger-Themen Forum; Hallo liebe Community, sollte dieses Thema falsch platziert sein, bitte verschieben oder gegebenenfalls löschen. Im Rahmen eines Schulprojektes...

  1. LikeanImon
    LikeanImon Neues Mitglied
    Hallo liebe Community,

    sollte dieses Thema falsch platziert sein, bitte verschieben oder gegebenenfalls löschen.
    Im Rahmen eines Schulprojektes entwerfe ich und mein Team ein Text-Adventure mittels Java. (hier: mexikanischer Staatsbürger versucht, die Grenze zu den Staaten zu passieren.).
    Leider habe ich ein entscheidendes Problem bei meinem Checkpoint. Die Idee ist simpel. Es entstehen Verzweigungen. Je nach dem, was der User eingibt, kommt er an verschiedene Stellen. Das Management der Stellen geschieht via Checkpoint.
    Wird ein bestimmter Text eingegeben, so kommt er dementsprechend einen Checkpoint weiter. Leider habe ich den Anschein, dass mein Checkpoint nicht gespeichert wird..
    Auch mehrere Antwortmöglichkeiten sind laut dem Programm (bei Strings) undefiniert (||).
    Diese habe ich provisorisch auskommentiert.

    Meinen Code findet ihr hier.


    import java.util.Scanner;

    public class play {

    private String antwort;

    public void setAntwort (String pAntwort) {

    this.antwort = pAntwort;

    }



    private static int Checkpoint = 0;

    public void setCheckpoint (int pCheckpoint) {

    this.Checkpoint = pCheckpoint;

    }



    public static void main(String[]args){

    System.out.print("2018, xyORT. Du bist mexikanischer Staatsbürger. Deine Familie hat bereits erfolgreich die Grenze zu den Vereinigten Staaten passiert. \nDu denkst darüber nach, ihnen zu folgen. Wenn du bleibst, musst du dich der mexikanischen Mafia stellen, doch eine Flucht birgt viele Gefahren. \nFür welche Möglichkeit entscheidest du dich? Bleiben oder Flüchten?");

    Scanner s = new Scanner(System.in);

    while (Checkpoint < 10 ) {

    String pAntwort = s.next();

    if (pAntwort.equals("Bleiben" /*|| "bleiben" || "hier bleiben" || "Hier bleiben"*/)) {

    System.out.println("Haha! Netter Versuch! Nix Da!");

    }

    else if (pAntwort. equals("Flüchten" /*|| "flüchten" || "Flüchte" || "flüchte" || "Flucht"*/ )) {

    System.out.print("Super! Flüchtest du alleine oder in einer Gruppe?");

    Checkpoint += 1;

    if (pAntwort.equals("alleine" /*|| "Alleine" || "Allein" || "allein" */) & Checkpoint == 1){

    System.out.print("Wenn du alleine flüchtest, hast du zwei Möglichkeiten:\n Entweder gehst du den Weg durch die Wüste oder den Weg über die Grenzkontrolle. ");

    Checkpoint += 1;

    }

    else if (pAntwort.equals("Gruppe" /*|| "In einer Gruppe" || "gruppe" */)) {

    System.out.print("\n Du hast dich einer Gruppe angeschlossen. Ihr überlegt ob ihr euch in einem LKW über die Grenze fahren lasst, oder ob ihr zu Fuß gehen wollt.");

    Checkpoint += 1;

    }

    }

    }

    }

    }

    Ich hoffe, die Formatierung ist nicht allzu grauenhaft.

    Habt ihr eine Idee zur Lösung meines Problems?

    Beste Grüße,

    Simon
     
  2. Vielleicht hilft dir dieses Training hier weiter.
  3. krgewb
    krgewb Aktives Mitglied
    Bitte immer in Code-Tags schreiben:
    Code (Java):

    import java.util.Scanner;

    public class play {
        private String antwort;

        public void setAntwort(String pAntwort) {
            this.antwort = pAntwort;
        }

        private static int Checkpoint = 0;

        public void setCheckpoint(int pCheckpoint) {
            this.Checkpoint = pCheckpoint;
        }

        public static void main(String[] args) {

            System.out.print("2018, xyORT. Du bist mexikanischer Staatsbürger. Deine Familie hat bereits erfolgreich die Grenze zu den Vereinigten Staaten passiert. \nDu denkst darüber nach, ihnen zu folgen. Wenn du bleibst, musst du dich der mexikanischen Mafia stellen, doch eine Flucht birgt viele Gefahren. \nFür welche Möglichkeit entscheidest du dich? Bleiben oder Flüchten?");

            Scanner s = new Scanner(System.in);

            while (Checkpoint < 10) {
                String pAntwort = s.next();
                if (pAntwort.equals("Bleiben" /* || "bleiben" || "hier bleiben" || "Hier bleiben" */)) {
                    System.out.println("Haha! Netter Versuch! Nix Da!");
                }
                else if (pAntwort.equals("Flüchten" /* || "flüchten" || "Flüchte" || "flüchte" || "Flucht" */ )) {
                    System.out.print("Super! Flüchtest du alleine oder in einer Gruppe?");
                    Checkpoint += 1;

                    if (pAntwort.equals("alleine" /* || "Alleine" || "Allein" || "allein" */) & Checkpoint == 1) {
                        System.out.print("Wenn du alleine flüchtest, hast du zwei Möglichkeiten:\n Entweder gehst du den Weg durch die Wüste oder den Weg über die Grenzkontrolle. ");
                        Checkpoint += 1;
                    }
                    else if (pAntwort.equals("Gruppe" /* || "In einer Gruppe" || "gruppe" */)) {
                        System.out.print("\n Du hast dich einer Gruppe angeschlossen. Ihr überlegt ob ihr euch in einem LKW über die Grenze fahren lasst, oder ob ihr zu Fuß gehen wollt.");
                        Checkpoint += 1;
                    }
                }
            }
        }
    }
     
     
  4. Javinner
    Javinner Bekanntes Mitglied
    Warum man dann der Mexikaner überhaupt gefragt wird, geht aus der Geschichte nicht vor..
    Idiotie at it best ;)
     
  5. Neumi5694
    Neumi5694 Mitglied
    Also ... du hast eine statische Variable Checkpoint (schreib Variablennamen klein) und Instanzmethoden, die den Wert setzen. Schlecht. Mach die Methoden auch statisch oder noch besser: Erstelle eine Instanz der Klasse, anstatt mit statischen Variablen zu arbeiten.

    Die Fälle "alleine" und "gruppe" werden wohl nie erreicht werden, weil der Wert gleichzeitig "flüchten" sein muss.

    Wenn du das Ganze nicht zwingend selbst programmieren willst, schau dir mal Tads3 an :)
    https://en.wikipedia.org/wiki/TADS
    (es gibt natürlich noch andere Alternativen, ADRIFT z.B.)
    Ich weiß ja nicht, ob's in der Schule um das Adventure oder die Engine geht.
     
  6. Wenn du Java lernen möchtest, empfehlen wir dir dieses Online-Training hier
Passende Stellenanzeigen aus deiner Region:





Die Seite wird geladen...

Text-Adventure - Ähnliche Themen

"Konsolenbasiertes Text-Adventure" als Anfängerprojekt
"Konsolenbasiertes Text-Adventure" als Anfängerprojekt im Forum Codeschnipsel u. Projekte
Thema: Text-Adventure