RateSpiel

Salom3D

Neues Mitglied
Hallo,
ich bin neu hier und wusste nicht genau wo ich meine Aufgabe reinschreiben soll. Hoffentlich bin ich richtig.
Ich weiß, dass hier niemand die Aufgaben für mich machen soll. Ich hab das Programm auch selbst fertig und es funktioniert auch gut. Aber ein Fehler verwirrt mich etwas.
Die Aufgabe ist ein Ratespiel. Der User gibt eine Zahl ein und vergleicht die Zahl mit einer random generierten Zahl. Checkt ob größer kleiner, gleich. Aber jeder Satz wird 2 mal ausgegeben.
Java:
import java.util.*;

public class RateVersucheMain{
    public static void main(String [] args){
        
        Scanner in = new Scanner(System.in);
        RateVersuche app = new RateVersuche();
        boolean getroffen = true;
        boolean verfehlt = false;
        int versuche = 0;
        int zahl = 0 ;
        
        System.out.println("\tHallo User, ich möchte ein Spiel mit dir spielen: ");
        System.out.println("\tVersuche die richtige Zahl zu finden.");
        System.out.println(app.zahl());
    
        app.zahl();
        
        while (true)
        {
            System.out.println("\t\nGib eine Zahl ein: ");
            int userZahl = in.nextInt();
            
            app.vergleich(userZahl);
            
            if(app.vergleich(userZahl) == getroffen)
            {
                break;
            }
            else 
            {
                app.getVersuche(versuche++);
            }
        }
        System.out.println("Du hattest " + versuche + " Versuche gebraucht");
    }
}

Das ist die Main methode und hier ist die Klasse mit den Methoden:

Java:
import java.util.Random;

public class RateVersuche
{
    Random random = new Random();
    int zahl =  random.nextInt(10);
    boolean getroffen = true;
    boolean verfehlt = false;
    
    public int zahl ()
    {
        return zahl;
    }
    public int getVersuche (int versuche)
    {
        return versuche;
    }
    public boolean vergleich(int userZahl)
    {
        if (zahl < userZahl)
        {
            System.out.println("\tDie eingegebene Zahl " + userZahl + " ist größer als die gesuchte Zahl. ");
            return verfehlt;
        }
        else if(userZahl < zahl)
        {
            System.out.println("\tDie eingegebene Zahl " + userZahl + " ist kleiner als die gesuchte Zahl. ");
            return verfehlt;
        }
        else 
        {
            System.out.println("\t\t\nDie eingegebene Zahl " + userZahl + " ist richtig! ");
            return getroffen;
        }
    }
}

Diese Befehle werden 2 mal ausgegeben "System.out.println("\t\t\nDie eingegebene Zahl " + userZahl + " ist richtig! ");" und ich weiß nicht genau wieso... Bestimmt ist der Fehler offensichtlich und ich finde den einfach nicht -.-
 

Neue Themen


Oben