Wörterraten - Falsche Ausgabe, String/Chars vergleichen

JaVaN0oB

Mitglied
Hallo :)

Ich habe die Aufgabe, ein Wörterraten zu programmieren.
Es soll über Kommandozeilenparameter das zu erratende Wort und die maximale Anzahl der Versuche übergeben werden.

Sobald mehr als ein Zeichen eingegeben wird, soll das gleich mit dem Wort abgeglichen werden.

Mein Programm sieht derzeit so aus:

Test.java:
import java.io.*;
import java.util.*;

public class Woerterraten {

    public static void main(String[] args) {

        Scanner t = new Scanner(System.in);

        char verwendet[];
        String wort = args[0];
        String ergebnis = "_";
        int i = Integer.parseInt(args[0]);
        String in;
        char input = 0;
        boolean[] richtig = new boolean[wort.length()];
        char[] name = wort.toCharArray();//new char[wort.length()];
        boolean stop = false;
        char[] vorkommen = new char[i];
        int vollstaendig=0;



        while (i > 0 || stop == true) {
            in = t.nextLine();
            // Wenn Wort nur 1 Zeichen, wandle in char
            if (in.length() == 1) {
                input = in.charAt(0);
                for (int j = 0; j < i; j++) {
                    if (input == vorkommen[j]) {
                        System.out.println("Buchstabe kam bereits vor");
                    }
                }
                name[wort.length() - 1] = input;

                for (int j = 0; j < wort.length(); j++) {
                    if (wort.charAt(j) == input) {
                        richtig[j] = true;



                    }
                }

                if (i > 1) {
                    for (int j = 0; j < wort.length(); j++) {

                        if (richtig[j]) {
                            System.out.print(wort.charAt(j));
                        } else {
                            System.out.print("_");
                        }
                    }
            }

            } else if (i == 1) {
                System.out.println("Maximale Anzahl an Versuchen ueberschritten");
            } else if (i == 2) {
                System.out.println("Versuche fuer " + wort);
            } else if (in.equals(wort)) {
                //System.out.println(in + " "+ wort);

                    System.out.println(i + " Versuche für " + wort);
                    stop = true;
                } else {
                    System.out.println("Falsches Wort");
                }


            //if(richtig[j] = true){
            for (int j2 = 0; j2 > richtig.length; j2--) {
                vollstaendig=0;
                if (richtig[j2]==true) {
                    vollstaendig++;
                }
                if (vollstaendig == 0) {
                    System.out.println(i + "Versuche für " + wort);
                    stop = true;
                }
                System.out.println(richtig[j2]);
            }


            i = i - 1;

        }

    }
}

Leider sind die Ausgaben nicht ganz richtig.
Was mache ich falsch? :(

Die Ausgabe soll wie in der Datei aussehen (links = input, rechts = erwarteter output).
Oben links kann man die Eingabe sehen: objektorientierung ist das Wort und man hat 13 Versuche.
 

Anhänge

  • Ausgabe.png
    Ausgabe.png
    28,4 KB · Aufrufe: 29
Und das wäre mein Woerterraten:

Java:
import java.util.HashSet;
import java.util.Scanner;

public class Woerterraten {

    private StringBuilder wortOffen = null;
    private StringBuilder wortVerdeckt = null;
    private int anzahlRichtig = 0;
    private int anzahlFalsch = 0;
    private HashSet<Character> versuche = new HashSet<>();
    private Scanner input = new Scanner(System.in);

    public Woerterraten(String wort) {
        wortOffen = new StringBuilder(wort);
        wortVerdeckt = new StringBuilder();
        for (int i = 0; i < wort.length() * 2 - 1; i++) {
            if (i % 2 == 0) {
                wortVerdeckt.append('_');
            } else {
                wortVerdeckt.append(' ');
            }
        }

        while (true) {
            System.out.println("Suchwort: " + wortVerdeckt);
            next();
            if (!wortVerdeckt.toString().contains("_")) {
                System.out.println("Suchwort: " + wortVerdeckt);
                System.out.println("Super, du hast gewonnen!!!");
                System.out.println("Richtige Versuche : " + anzahlRichtig);
                System.out.println("Falsche Versuche  : " + anzahlFalsch);
                System.out.println("Gesamt            : " + (anzahlRichtig + anzahlFalsch));
                return;
            }
        }
    }

    private void next() {
        System.out.println("Dein Buchstabe:");
        char c = (char) input.next().chars().findFirst().orElse('0');
        if (Character.isUpperCase(c))
            c = Character.toLowerCase(c);
        if (c < 'a' || c > 'z') {
            System.out.println("Das war ein ungültiger Buchstabe...");
            return;
        }
        if (versuche.contains(c)) {
            System.out.println("Den Buchstaben hattest du schon mal...");
            anzahlFalsch++;
        } else {
            versuche.add(c);

            boolean richtig = false;
            for (int i = 0; i < wortOffen.length(); i++) {
                int j = i * 2;
                if (wortOffen.charAt(i) == c && wortVerdeckt.charAt(j) == '_') {
                    wortVerdeckt.replace(j, j + 1, Character.toString(c));
                    richtig = true;
                }
            }
            if (richtig) {
                System.out.println("Bravo, dein Buchstabe kam vor...");
                anzahlRichtig++;
            } else {
                System.out.println("Pech, dieser Buchstabe kam nicht vor...");
                anzahlFalsch++;
            }
        }
    }

    public static void main(String[] args) {
        new Woerterraten("bananentorte");
    }

}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
D falsche eingabe erkennen Java Basics - Anfänger-Themen 2
F Wieso wird immer die falsche Mausposition angegeben? Java Basics - Anfänger-Themen 1
H Falsche Ausgabe Java Basics - Anfänger-Themen 2
K falsche Eingabe abfangen Java Basics - Anfänger-Themen 8
L Falsche Methode wird geladen Java Basics - Anfänger-Themen 2
T JLabel hat falsche größe Java Basics - Anfänger-Themen 1
H Swing Button hat falsche Größe Java Basics - Anfänger-Themen 5
T Input/Output Falsche Eingabe ausgeben Java Basics - Anfänger-Themen 3
R StringBounds falsche Ergebnisse Java Basics - Anfänger-Themen 5
D Falsche Zeile wird in JTable gelöscht Java Basics - Anfänger-Themen 6
W Array in String und String in Array - falsche Ausgaben Java Basics - Anfänger-Themen 20
T Falsche Ausgabe ???? Java Basics - Anfänger-Themen 13
S Falsche Ausgabe Java Basics - Anfänger-Themen 6
M Input/Output ISBN Leser - falsche Eingabe ausgeben Java Basics - Anfänger-Themen 2
V Personenverwaltung mit List<>, falsche Ausgaben Java Basics - Anfänger-Themen 5
R Methoden Switch wählt das Falsche Java Basics - Anfänger-Themen 17
K Falsche Methode Java Basics - Anfänger-Themen 3
J Falsche Darstellung von Float Java Basics - Anfänger-Themen 2
M Falsche Eingabe wiederholen lassen Java Basics - Anfänger-Themen 2
W Methoden Falsche Felder von Methode belgegt Java Basics - Anfänger-Themen 14
M falsche implementierung von currentTimeMillis() ? Java Basics - Anfänger-Themen 14
F charAt-Methode liefert falsche Unicode-Werte Java Basics - Anfänger-Themen 8
P Falsche Werte bei Zeitmessungen Java Basics - Anfänger-Themen 7
Helgon Falsche Zeichen im Text Java Basics - Anfänger-Themen 10
S Parameterübergabe - identische Funktionen, aber falsche Funktion Java Basics - Anfänger-Themen 5
G Bubblesort - Falsche Sortierung Java Basics - Anfänger-Themen 6
D Kriege falsche MD5 Java Basics - Anfänger-Themen 12
R run ->eclipse ruft falsche Programme auf Java Basics - Anfänger-Themen 5
D p q formel gibt zum Teil falsche Werte aus Java Basics - Anfänger-Themen 5
S Falsche Version? Java Basics - Anfänger-Themen 2
C Falsche Zeit Java Basics - Anfänger-Themen 2
V Falsche Augabe Java Basics - Anfänger-Themen 16
C Klammern einlesen!!! Falsche Ausgabe!!!! Java Basics - Anfänger-Themen 4
S Falsche Reihenfolge von Methodenaufrufen Java Basics - Anfänger-Themen 8
H Falsche Eingabe über try-catch abfangen Java Basics - Anfänger-Themen 2
K Verschiebeoperatoren - manchmal falsche Ergebnisse Java Basics - Anfänger-Themen 7
L Datenbankanbindung ODBC falsche pfadangabe? Java Basics - Anfänger-Themen 3
O Falsche Bed. (ein überlauf) seh den Fehler aber nicht. Java Basics - Anfänger-Themen 3
G static array liefert falsche Werte zurück Java Basics - Anfänger-Themen 2
S Falsche Ausgabe Java Basics - Anfänger-Themen 3
L Wegen TableSorter wird falsche Zeile einer Tabelle gelöscht? Java Basics - Anfänger-Themen 2
G falsche Version Java Basics - Anfänger-Themen 3
L Falsche Umsetzung von MVC, brauche Hilfe Java Basics - Anfänger-Themen 6
D Tabelle -> Daten eingeben -> Falsche erhalten Java Basics - Anfänger-Themen 9
S Falsche Ausgabe? Java Basics - Anfänger-Themen 2
F Falsche Daten aus Datei Java Basics - Anfänger-Themen 2
G Falsche Java befehle, doch was ist falsch? Java Basics - Anfänger-Themen 9
C falsche Eingabe abfangen Java Basics - Anfänger-Themen 8
M Falsche do-Schleife? Java Basics - Anfänger-Themen 4
E falsche Ausgabe Java Basics - Anfänger-Themen 7
D Falsche Datumsausgabe? Java Basics - Anfänger-Themen 5
J erhalte falsche Kalenderwoche - wo ist der Fehler? Java Basics - Anfänger-Themen 2
S Ausgabe des Variablenwerts Java Basics - Anfänger-Themen 10
I Ausgabe nicht nur senkrecht sondern auch waagerecht. Java Basics - Anfänger-Themen 2
paulen1 Methoden Unerwünschte Ausgabe bei System.out.print in For-Schleife Java Basics - Anfänger-Themen 8
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
F Double Ausgabe nicht wissenschaftlich Java Basics - Anfänger-Themen 16
danieldemetry Java - Graph Komponenten - Ausgabe Java Basics - Anfänger-Themen 0
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
D BigDecimal Ausgabe sehr lang. Java Basics - Anfänger-Themen 2
J String Ausgabe Java Basics - Anfänger-Themen 2
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
KogoroMori21 Array-Ausgabe Java Basics - Anfänger-Themen 6
E Ausgabe überschreiben Java Basics - Anfänger-Themen 15
D Ausgabe von Array Java Basics - Anfänger-Themen 2
U Ausgabe Java Basics - Anfänger-Themen 4
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
V Multiplikationstafel - Ausgabe Java Basics - Anfänger-Themen 4
L Warum ist die Ausgabe anders als das was im Bezeichner steht? Java Basics - Anfänger-Themen 4
M In gleicher zeile hinter ausgabe noch etwas ausgeben Java Basics - Anfänger-Themen 1
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
P Klassenübergreifende Ausgabe mittels "getter" nicht möglich Java Basics - Anfänger-Themen 21
R Call-by-Value, Call-by-Reference, Call-by-Name Ausgabe Java Basics - Anfänger-Themen 1
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
D Warum erfolgt folgende Ausgabe und warum? Java Basics - Anfänger-Themen 4
C Ausgabe in der Konsole Java Basics - Anfänger-Themen 11
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
C Konvertierung des int typs in den double typ für die Ausgabe mit Nachkommastellen Java Basics - Anfänger-Themen 4
A Ausgabe mit boolean Java Basics - Anfänger-Themen 3
K Probleme bei der Ausgabe - komme nicht weiter :/ Java Basics - Anfänger-Themen 15
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
Y Methode + Parameters + Ein und Ausgabe Java Basics - Anfänger-Themen 1
K Methodenaufruf /-ausgabe Java Basics - Anfänger-Themen 5
A Wiederholte Ausgabe vermeiden Java Basics - Anfänger-Themen 16
B Collections Objektreferenz-ID in der Ausgabe (Comparator Interface) Java Basics - Anfänger-Themen 2
M Wie analysiert JSON eine toString-Ausgabe ? Java Basics - Anfänger-Themen 1
T Vererbung Verschiedene Fahrzeugtypen mit unterschiedlicher Ausgabe Java Basics - Anfänger-Themen 17
T Ausgabe einer for Schleife Java Basics - Anfänger-Themen 2
S Elemente eines Arrays bei Ausgabe auslassen Java Basics - Anfänger-Themen 2
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
T Text-Ausgabe für Textadventure - Organisation Java Basics - Anfänger-Themen 5
G Unterklassen (Klasse für Ausgabe) Java Basics - Anfänger-Themen 4
N Eingabe des Users direkt hinter die Ausgabe Java Basics - Anfänger-Themen 3
J Methode zur Ausgabe eines Dreiecks aus Sternen schreiben? Java Basics - Anfänger-Themen 2
ZH1896ZH Wieso diese Ausgabe?? Java Basics - Anfänger-Themen 10
J Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe" Java Basics - Anfänger-Themen 6
B Keine Ausgabe .. Woran liegt das? Ich komme nicht weiter Java Basics - Anfänger-Themen 14

Ähnliche Java Themen


Oben