Ratespiel-Java von Kopf bis Fuß

Bitte aktiviere JavaScript!
Hallo zusammen,

ich bin totaler Neuling, was Programmieren angeht und kämpfe mich momentan durch das Buch Java von Kopf bis Fuß. Ich bin mittlerweile im zweiten Kapitel angekommen, in dem Objekte eingeführt werden.

Ich habe nun den Code, so scheint es mir zumindest, in Eclipse abgeschrieben. Allerdings funktioniert bei mir die Zuweisung der Instanzvariablen nicht.

Wie gesagt, bin absoluter Anfänger. Irgendwie funktioniert das mit dem Syntaxhighlighting auch nicht bei mir^^Sry

Code:

Java:
public class Ratespiel {
    Spieler s1; // Spieler cannot be resolved to a type
    Spieler s2;
    Spieler s3;

    public void starteSpiel () {
        s1 = new Spieler();
        s2 = new Spieler();
        s3 = new Spieler();
       
        int tipp1 = 0;
        int tipp2 = 0;
        int tipp3 = 0;
       
        boolean s1hatRecht = false;
        boolean s2hatRecht = false;
        boolean s3hatRecht = false;
       
        int zielZahl = (int) (Math.random()*10);
        System.out.println("ich denke mir eine Zahl zwischen 0 und 9 aus...");
       
        while(true) {
            System.out.println("Die zu ratende Zahl ist " + zielZahl);
           
            s1.raten();
            s2.raten();
            s3.raten();
           
            tipp1 = s1.zahl;
            System.out.println("Spieler eins tippte" + tipp1);
           
            tipp2 = s2.zahl;
            System.out.println("Spieler zwei tippte" + tipp2);
           
            tipp3 = s3.zahl;
            System.out.println("Spieler drei tippte" + tipp3);
           
            if (tipp1 ==zielZahl) {
                s1hatRecht = true;
               
            if (tipp2 ==zielZahl) {
                s2hatRecht = true;
                   
            if (tipp3 ==zielZahl) {
                s3hatRecht = true;
            }
            if (s1hatRecht || s2hatRecht || s3hatRecht) {
               
                System.out.println("Wir haben einen Gewinner");
                System.out.println("Spieler eins hat richtig geraten" + s1hatRecht);
                System.out.println("Spieler zwei hat richtig geraten" + s2hatRecht);
                System.out.println("Spieler drei hat richtig geraten" + s3hatRecht);
                System.out.println("Das Spiel ist aus");
                break;
               
            } else {
                System.out.println("Neuer Versuch");
               
               
                public class Spieler {
                    int zahl = 0;
                   
                    public void raten() {
                        zahl = (int)(Math.random()*10);
                        System.out.println("Ich tippe auf die Zahl:" + zahl);
                    }
                }
            public class SpielStarter {
                public static void main (String[]args) {
                    Ratespiel spiel = new Ratespiel();
                    spiel.starteSpiel();
                }
            }
                }
            }
 
Zuletzt bearbeitet von einem Moderator:
Allerdings funktioniert bei mir die Zuweisung der Instanzvariablen nicht.
Wenn eine Fehlermeldung kommt, wäre es schön, wenn du diese auch posten würdest.

Zudem poste es doch bitte in Code-Tags, obere Iconleiste, Drei Punkte, Code.


edit: in NetBeans wird es problemlos ausgeführt.
Java:
ich denke mir eine Zahl zwischen 0 und 9 aus...
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:1
Ich tippe auf die Zahl:1
Ich tippe auf die Zahl:3
Spieler eins tippte1
Spieler zwei tippte1
Spieler drei tippte3
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:5
Spieler eins tippte3
Spieler zwei tippte0
Spieler drei tippte5
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:0
Spieler eins tippte5
Spieler zwei tippte5
Spieler drei tippte0
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:0
Spieler eins tippte7
Spieler zwei tippte9
Spieler drei tippte0
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:9
Spieler eins tippte6
Spieler zwei tippte3
Spieler drei tippte9
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:1
Ich tippe auf die Zahl:1
Ich tippe auf die Zahl:3
Spieler eins tippte1
Spieler zwei tippte1
Spieler drei tippte3
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:9
Spieler eins tippte5
Spieler zwei tippte7
Spieler drei tippte9
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:1
Spieler eins tippte8
Spieler zwei tippte5
Spieler drei tippte1
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:9
Spieler eins tippte7
Spieler zwei tippte7
Spieler drei tippte9
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:4
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:5
Spieler eins tippte4
Spieler zwei tippte7
Spieler drei tippte5
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:7
Spieler eins tippte7
Spieler zwei tippte6
Spieler drei tippte7
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:4
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:2
Spieler eins tippte4
Spieler zwei tippte8
Spieler drei tippte2
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:1
Spieler eins tippte5
Spieler zwei tippte3
Spieler drei tippte1
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:6
Spieler eins tippte5
Spieler zwei tippte2
Spieler drei tippte6
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:1
Ich tippe auf die Zahl:2
Spieler eins tippte9
Spieler zwei tippte1
Spieler drei tippte2
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:6
Spieler eins tippte2
Spieler zwei tippte3
Spieler drei tippte6
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:2
Spieler eins tippte8
Spieler zwei tippte6
Spieler drei tippte2
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:2
Spieler eins tippte2
Spieler zwei tippte8
Spieler drei tippte2
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:7
Spieler eins tippte0
Spieler zwei tippte3
Spieler drei tippte7
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:6
Spieler eins tippte0
Spieler zwei tippte2
Spieler drei tippte6
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:0
Spieler eins tippte0
Spieler zwei tippte0
Spieler drei tippte0
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:7
Spieler eins tippte0
Spieler zwei tippte6
Spieler drei tippte7
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:7
Spieler eins tippte3
Spieler zwei tippte5
Spieler drei tippte7
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:0
Spieler eins tippte0
Spieler zwei tippte7
Spieler drei tippte0
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:0
Spieler eins tippte6
Spieler zwei tippte7
Spieler drei tippte0
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:7
Spieler eins tippte0
Spieler zwei tippte9
Spieler drei tippte7
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:1
Ich tippe auf die Zahl:7
Spieler eins tippte5
Spieler zwei tippte1
Spieler drei tippte7
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:6
Spieler eins tippte2
Spieler zwei tippte9
Spieler drei tippte6
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:5
Spieler eins tippte9
Spieler zwei tippte9
Spieler drei tippte5
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:1
Ich tippe auf die Zahl:0
Spieler eins tippte5
Spieler zwei tippte1
Spieler drei tippte0
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:1
Ich tippe auf die Zahl:4
Ich tippe auf die Zahl:2
Spieler eins tippte1
Spieler zwei tippte4
Spieler drei tippte2
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:2
Spieler eins tippte8
Spieler zwei tippte8
Spieler drei tippte2
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:7
Spieler eins tippte7
Spieler zwei tippte8
Spieler drei tippte7
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:8
Spieler eins tippte0
Spieler zwei tippte5
Spieler drei tippte8
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:4
Ich tippe auf die Zahl:1
Spieler eins tippte6
Spieler zwei tippte4
Spieler drei tippte1
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:6
Spieler eins tippte2
Spieler zwei tippte3
Spieler drei tippte6
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:5
Spieler eins tippte9
Spieler zwei tippte0
Spieler drei tippte5
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:7
Spieler eins tippte0
Spieler zwei tippte9
Spieler drei tippte7
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:4
Spieler eins tippte6
Spieler zwei tippte3
Spieler drei tippte4
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:9
Spieler eins tippte8
Spieler zwei tippte0
Spieler drei tippte9
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:8
Spieler eins tippte3
Spieler zwei tippte0
Spieler drei tippte8
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:4
Ich tippe auf die Zahl:7
Spieler eins tippte0
Spieler zwei tippte4
Spieler drei tippte7
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:9
Spieler eins tippte5
Spieler zwei tippte0
Spieler drei tippte9
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:2
Spieler eins tippte6
Spieler zwei tippte7
Spieler drei tippte2
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:7
Spieler eins tippte2
Spieler zwei tippte3
Spieler drei tippte7
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:7
Spieler eins tippte9
Spieler zwei tippte9
Spieler drei tippte7
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:5
Spieler eins tippte3
Spieler zwei tippte7
Spieler drei tippte5
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:4
Ich tippe auf die Zahl:5
Spieler eins tippte8
Spieler zwei tippte4
Spieler drei tippte5
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:6
Spieler eins tippte6
Spieler zwei tippte0
Spieler drei tippte6
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:1
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:9
Spieler eins tippte1
Spieler zwei tippte5
Spieler drei tippte9
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:8
Spieler eins tippte8
Spieler zwei tippte6
Spieler drei tippte8
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:2
Spieler eins tippte9
Spieler zwei tippte5
Spieler drei tippte2
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:4
Ich tippe auf die Zahl:8
Spieler eins tippte0
Spieler zwei tippte4
Spieler drei tippte8
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:4
Spieler eins tippte9
Spieler zwei tippte7
Spieler drei tippte4
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:1
Ich tippe auf die Zahl:0
Spieler eins tippte3
Spieler zwei tippte1
Spieler drei tippte0
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:1
Ich tippe auf die Zahl:3
Spieler eins tippte5
Spieler zwei tippte1
Spieler drei tippte3
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:1
Spieler eins tippte8
Spieler zwei tippte0
Spieler drei tippte1
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:7
Spieler eins tippte0
Spieler zwei tippte2
Spieler drei tippte7
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:4
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:8
Spieler eins tippte4
Spieler zwei tippte7
Spieler drei tippte8
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:4
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:6
Spieler eins tippte4
Spieler zwei tippte9
Spieler drei tippte6
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:4
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:5
Spieler eins tippte4
Spieler zwei tippte8
Spieler drei tippte5
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:8
Spieler eins tippte2
Spieler zwei tippte6
Spieler drei tippte8
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:3
Spieler eins tippte2
Spieler zwei tippte8
Spieler drei tippte3
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:4
Spieler eins tippte7
Spieler zwei tippte7
Spieler drei tippte4
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:4
Spieler eins tippte8
Spieler zwei tippte8
Spieler drei tippte4
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:1
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:7
Spieler eins tippte1
Spieler zwei tippte3
Spieler drei tippte7
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:0
Spieler eins tippte9
Spieler zwei tippte3
Spieler drei tippte0
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:5
Spieler eins tippte9
Spieler zwei tippte7
Spieler drei tippte5
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:4
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:1
Spieler eins tippte4
Spieler zwei tippte8
Spieler drei tippte1
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:5
Spieler eins tippte9
Spieler zwei tippte0
Spieler drei tippte5
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:2
Spieler eins tippte5
Spieler zwei tippte2
Spieler drei tippte2
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:8
Spieler eins tippte6
Spieler zwei tippte2
Spieler drei tippte8
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:5
Spieler eins tippte3
Spieler zwei tippte8
Spieler drei tippte5
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:1
Spieler eins tippte3
Spieler zwei tippte0
Spieler drei tippte1
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:1
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:7
Spieler eins tippte1
Spieler zwei tippte3
Spieler drei tippte7
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:5
Spieler eins tippte7
Spieler zwei tippte3
Spieler drei tippte5
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:2
Spieler eins tippte2
Spieler zwei tippte3
Spieler drei tippte2
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:2
Spieler eins tippte2
Spieler zwei tippte7
Spieler drei tippte2
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:3
Spieler eins tippte6
Spieler zwei tippte7
Spieler drei tippte3
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:4
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:1
Spieler eins tippte4
Spieler zwei tippte9
Spieler drei tippte1
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:4
Spieler eins tippte6
Spieler zwei tippte8
Spieler drei tippte4
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:5
Spieler eins tippte0
Spieler zwei tippte6
Spieler drei tippte5
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:3
Spieler eins tippte6
Spieler zwei tippte8
Spieler drei tippte3
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:1
Ich tippe auf die Zahl:9
Spieler eins tippte9
Spieler zwei tippte1
Spieler drei tippte9
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:3
Spieler eins tippte7
Spieler zwei tippte7
Spieler drei tippte3
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:3
Spieler eins tippte6
Spieler zwei tippte5
Spieler drei tippte3
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:8
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:8
Spieler eins tippte8
Spieler zwei tippte6
Spieler drei tippte8
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:3
Spieler eins tippte5
Spieler zwei tippte2
Spieler drei tippte3
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:6
Spieler eins tippte0
Spieler zwei tippte7
Spieler drei tippte6
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:6
Spieler eins tippte9
Spieler zwei tippte5
Spieler drei tippte6
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:5
Spieler eins tippte5
Spieler zwei tippte5
Spieler drei tippte5
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:4
Ich tippe auf die Zahl:1
Spieler eins tippte6
Spieler zwei tippte4
Spieler drei tippte1
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:6
Spieler eins tippte7
Spieler zwei tippte2
Spieler drei tippte6
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:1
Spieler eins tippte7
Spieler zwei tippte7
Spieler drei tippte1
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:1
Ich tippe auf die Zahl:0
Spieler eins tippte0
Spieler zwei tippte1
Spieler drei tippte0
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:3
Spieler eins tippte3
Spieler zwei tippte5
Spieler drei tippte3
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:7
Ich tippe auf die Zahl:0
Ich tippe auf die Zahl:7
Spieler eins tippte7
Spieler zwei tippte0
Spieler drei tippte7
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:4
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:2
Spieler eins tippte4
Spieler zwei tippte2
Spieler drei tippte2
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:9
Ich tippe auf die Zahl:9
Spieler eins tippte3
Spieler zwei tippte9
Spieler drei tippte9
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:6
Ich tippe auf die Zahl:5
Spieler eins tippte3
Spieler zwei tippte6
Spieler drei tippte5
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:5
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:0
Spieler eins tippte5
Spieler zwei tippte2
Spieler drei tippte0
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:3
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:4
Spieler eins tippte3
Spieler zwei tippte2
Spieler drei tippte4
Die zu ratende Zahl ist 2
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:2
Ich tippe auf die Zahl:7
Spieler eins tippte2
Spieler zwei tippte2
Spieler drei tippte7
Wir haben einen Gewinner
Spieler eins hat richtig geratentrue
Spieler zwei hat richtig geratentrue
Spieler drei hat richtig geratenfalse
Das Spiel ist aus
Jedoch ist der Code fehlerhaft, soll es so sein?
 
Zuletzt bearbeitet:
Also ich hoffe, dass eclipse die Einrückung richtig macht. (Ich bin da mit Eclipse nicht immer so glücklich gewesen und nutze IntelliJ. EInrücken kann Eclipse aber auch und du solltest eclipse das Einrücken machen lassen!)

Wieso ich das sage, zeige ich direkt auf:

Deine if(tipp1 == zielZahl) geht zu weit. Der Block endet nicht nach der Zuweisung sondern das zweite if ist auch in dem Block. Damit wird tipp2 nur geprüft, wenn tipp1 richtig war. Bei tipp3 müssen tipp1 und tipp2 richtig gewesen sein ...

Das war, was mir direkt aufgefallen ist.
 
Java:
public class Ratespiel {
    Spieler s1; // hier erscheint Spieler cannot be resolved to a type
    Spieler s2;
    Spieler s3;

    public void starteSpiel () {
        s1 = new Spieler();
        s2 = new Spieler();
        s3 = new Spieler();
        
        int tipp1 = 0;
        int tipp2 = 0;
        int tipp3 = 0;
        
        boolean s1hatRecht = false;
        boolean s2hatRecht = false;
        boolean s3hatRecht = false;
        
        int zielZahl = (int) (Math.random()*10);
        System.out.println("ich denke mir eine Zahl zwischen 0 und 9 aus...");
        
        while(true) {
            System.out.println("Die zu ratende Zahl ist " + zielZahl);
            
            s1.raten();
            s2.raten();
            s3.raten();
            
            tipp1 = s1.zahl;
            System.out.println("Spieler eins tippte" + tipp1);
            
            tipp2 = s2.zahl;
            System.out.println("Spieler zwei tippte" + tipp2);
            
            tipp3 = s3.zahl;
            System.out.println("Spieler drei tippte" + tipp3);
            
            if (tipp1 ==zielZahl) {
                s1hatRecht = true;
                
            if (tipp2 ==zielZahl) {
                s2hatRecht = true;
                    
            if (tipp3 ==zielZahl) {
                s3hatRecht = true;
            }
            if (s1hatRecht || s2hatRecht || s3hatRecht) {
                
                System.out.println("Wir haben einen Gewinner");
                System.out.println("Spieler eins hat richtig geraten" + s1hatRecht);
                System.out.println("Spieler zwei hat richtig geraten" + s2hatRecht);
                System.out.println("Spieler drei hat richtig geraten" + s3hatRecht);
                System.out.println("Das Spiel ist aus");
                break;
                
            } else {
                System.out.println("Neuer Versuch");
                
                
                public class Spieler {
                    int zahl = 0;
                    
                    public void raten() {
                        zahl = (int)(Math.random()*10);
                        System.out.println("Ich tippe auf die Zahl:" + zahl);
                    }
                }
            public class SpielStarter {
                public static void main (String[]args) {
                    Ratespiel spiel = new Ratespiel();
                    spiel.starteSpiel();
                }
            }
                }
            }
Habe den Fehler oben als Kommentar dazu geschrieben. Und vielen Dank, für die schnelle Antwort.
 
Versuche mal, die vorhandene Klasse Ratespiel durch diese zu ersetzen.
Java:
public class Ratespiel
{

    Spieler s1; // Spieler cannot be resolved to a type
    Spieler s2;
    Spieler s3;

    public void starteSpiel()
    {
        s1 = new Spieler();
        s2 = new Spieler();
        s3 = new Spieler();

        int tipp1 = 0;
        int tipp2 = 0;
        int tipp3 = 0;

        boolean s1hatRecht = false;
        boolean s2hatRecht = false;
        boolean s3hatRecht = false;

        int zielZahl = (int) (Math.random() * 10);
        System.out.println("ich denke mir eine Zahl zwischen 0 und 9 aus...");

        while (true)
        {
            System.out.println("Die zu ratende Zahl ist " + zielZahl);

            s1.raten();
            s2.raten();
            s3.raten();

            tipp1 = s1.zahl;
            System.out.println("Spieler eins tippte" + tipp1);

            tipp2 = s2.zahl;
            System.out.println("Spieler zwei tippte" + tipp2);

            tipp3 = s3.zahl;
            System.out.println("Spieler drei tippte" + tipp3);

            if (tipp1 == zielZahl)
            {
                s1hatRecht = true;

                if (tipp2 == zielZahl)
                {
                    s2hatRecht = true;

                    if (tipp3 == zielZahl)
                    {
                        s3hatRecht = true;
                    }
                    if (s1hatRecht || s2hatRecht || s3hatRecht)
                    {

                        System.out.println("Wir haben einen Gewinner");
                        System.out.println(
                                "Spieler eins hat richtig geraten" + s1hatRecht);
                        System.out.println(
                                "Spieler zwei hat richtig geraten" + s2hatRecht);
                        System.out.println(
                                "Spieler drei hat richtig geraten" + s3hatRecht);
                        System.out.println("Das Spiel ist aus");
                        break;

                    } else
                    {
                        System.out.println("Neuer Versuch");
                    }
                }
            }
        }
    }
}
 
Also ich hoffe, dass eclipse die Einrückung richtig macht. (Ich bin da mit Eclipse nicht immer so glücklich gewesen und nutze IntelliJ. EInrücken kann Eclipse aber auch und du solltest eclipse das Einrücken machen lassen!)

Wieso ich das sage, zeige ich direkt auf:

Deine if(tipp1 == zielZahl) geht zu weit. Der Block endet nicht nach der Zuweisung sondern das zweite if ist auch in dem Block. Damit wird tipp2 nur geprüft, wenn tipp1 richtig war. Bei tipp3 müssen tipp1 und tipp2 richtig gewesen sein ...

Das war, was mir direkt aufgefallen ist.
Danke, werde ich mir gleich mal anschauen.
Formatiert habe ich das Ganze über Str.+Shift+F
 
Versuche mal, die vorhandene Klasse Ratespiel durch diese zu ersetzen.
Java:
public class Ratespiel
{

    Spieler s1; // Spieler cannot be resolved to a type
    Spieler s2;
    Spieler s3;

    public void starteSpiel()
    {
        s1 = new Spieler();
        s2 = new Spieler();
        s3 = new Spieler();

        int tipp1 = 0;
        int tipp2 = 0;
        int tipp3 = 0;

        boolean s1hatRecht = false;
        boolean s2hatRecht = false;
        boolean s3hatRecht = false;

        int zielZahl = (int) (Math.random() * 10);
        System.out.println("ich denke mir eine Zahl zwischen 0 und 9 aus...");

        while (true)
        {
            System.out.println("Die zu ratende Zahl ist " + zielZahl);

            s1.raten();
            s2.raten();
            s3.raten();

            tipp1 = s1.zahl;
            System.out.println("Spieler eins tippte" + tipp1);

            tipp2 = s2.zahl;
            System.out.println("Spieler zwei tippte" + tipp2);

            tipp3 = s3.zahl;
            System.out.println("Spieler drei tippte" + tipp3);

            if (tipp1 == zielZahl)
            {
                s1hatRecht = true;

                if (tipp2 == zielZahl)
                {
                    s2hatRecht = true;

                    if (tipp3 == zielZahl)
                    {
                        s3hatRecht = true;
                    }
                    if (s1hatRecht || s2hatRecht || s3hatRecht)
                    {

                        System.out.println("Wir haben einen Gewinner");
                        System.out.println(
                                "Spieler eins hat richtig geraten" + s1hatRecht);
                        System.out.println(
                                "Spieler zwei hat richtig geraten" + s2hatRecht);
                        System.out.println(
                                "Spieler drei hat richtig geraten" + s3hatRecht);
                        System.out.println("Das Spiel ist aus");
                        break;

                    } else
                    {
                        System.out.println("Neuer Versuch");
                    }
                }
            }
        }
    }
}
Gleiche Fehlermeldung, wie davor...
 
Also Du solltest am Anfang keine Inner Classes nutzen. Das kannst Du später machen, wenn Du verstehst, wie die funktionieren.

Also jede Klasse bekommt bitte seine eigene Datei! Somit kopier die Klasse Spieler in eine Datei Spieler.java. Ebenso verfährst Du mit anderen Klassen (SpielStarter habe ich noch gesehen).
 
Ah, stimmt.

Ersetze die Klasse SpielStarter durch die hier:
Java:
public class SpielStarter
{


    public static void main(String[] args)
    {
        Ratespiel spiel = new Ratespiel();
        spiel.starteSpiel();
    }

    public static class Spieler
    {

        int zahl = 0;

        public void raten()
        {
            zahl = (int) (Math.random() * 10);
            System.out.println("Ich tippe auf die Zahl:" + zahl);
        }
    }

    public static class Ratespiel
    {

        Spieler s1; // Spieler cannot be resolved to a type
        Spieler s2;
        Spieler s3;

        public void starteSpiel()
        {
            s1 = new Spieler();
            s2 = new Spieler();
            s3 = new Spieler();

            int tipp1 = 0;
            int tipp2 = 0;
            int tipp3 = 0;

            boolean s1hatRecht = false;
            boolean s2hatRecht = false;
            boolean s3hatRecht = false;

            int zielZahl = (int) (Math.random() * 10);
            System.out.println("ich denke mir eine Zahl zwischen 0 und 9 aus...");

            while (true)
            {
                System.out.println("Die zu ratende Zahl ist " + zielZahl);

                s1.raten();
                s2.raten();
                s3.raten();

                tipp1 = s1.zahl;
                System.out.println("Spieler eins tippte" + tipp1);

                tipp2 = s2.zahl;
                System.out.println("Spieler zwei tippte" + tipp2);

                tipp3 = s3.zahl;
                System.out.println("Spieler drei tippte" + tipp3);

                if (tipp1 == zielZahl)
                {
                    s1hatRecht = true;

                    if (tipp2 == zielZahl)
                    {
                        s2hatRecht = true;

                        if (tipp3 == zielZahl)
                        {
                            s3hatRecht = true;
                        }
                        if (s1hatRecht || s2hatRecht || s3hatRecht)
                        {

                            System.out.println("Wir haben einen Gewinner");
                            System.out.println(
                                    "Spieler eins hat richtig geraten" + s1hatRecht);
                            System.out.println(
                                    "Spieler zwei hat richtig geraten" + s2hatRecht);
                            System.out.println(
                                    "Spieler drei hat richtig geraten" + s3hatRecht);
                            System.out.println("Das Spiel ist aus");
                            break;

                        } else
                        {
                            System.out.println("Neuer Versuch");
                        }
                    }
                }
            }
        }
    }

}
Warum da jetzt überall statlc steht, gilt zu beantworten ;)
 
Also Du solltest am Anfang keine Inner Classes nutzen. Das kannst Du später machen, wenn Du verstehst, wie die funktionieren.

Also jede Klasse bekommt bitte seine eigene Datei! Somit kopier die Klasse Spieler in eine Datei Spieler.java. Ebenso verfährst Du mit anderen Klassen (SpielStarter habe ich noch gesehen).
Das wird wohl das Sinnvollste sein... die Sprünge in den Büchern sind leider manchmal ziemlich groß, sodass man als totaler Laie Probleme hat zu folgen.
Ansonsten werde ich mich erst mal durch weitere Videos und Tutorials kämpfen.
Wollte mir bis zum Beginn meines Studiums ein paar Grundlagen schaffen.
 
Ah, stimmt.

Ersetze die Klasse SpielStarter durch die hier:
Java:
public class SpielStarter
{


    public static void main(String[] args)
    {
        Ratespiel spiel = new Ratespiel();
        spiel.starteSpiel();
    }

    public static class Spieler
    {

        int zahl = 0;

        public void raten()
        {
            zahl = (int) (Math.random() * 10);
            System.out.println("Ich tippe auf die Zahl:" + zahl);
        }
    }

    public static class Ratespiel
    {

        Spieler s1; // Spieler cannot be resolved to a type
        Spieler s2;
        Spieler s3;

        public void starteSpiel()
        {
            s1 = new Spieler();
            s2 = new Spieler();
            s3 = new Spieler();

            int tipp1 = 0;
            int tipp2 = 0;
            int tipp3 = 0;

            boolean s1hatRecht = false;
            boolean s2hatRecht = false;
            boolean s3hatRecht = false;

            int zielZahl = (int) (Math.random() * 10);
            System.out.println("ich denke mir eine Zahl zwischen 0 und 9 aus...");

            while (true)
            {
                System.out.println("Die zu ratende Zahl ist " + zielZahl);

                s1.raten();
                s2.raten();
                s3.raten();

                tipp1 = s1.zahl;
                System.out.println("Spieler eins tippte" + tipp1);

                tipp2 = s2.zahl;
                System.out.println("Spieler zwei tippte" + tipp2);

                tipp3 = s3.zahl;
                System.out.println("Spieler drei tippte" + tipp3);

                if (tipp1 == zielZahl)
                {
                    s1hatRecht = true;

                    if (tipp2 == zielZahl)
                    {
                        s2hatRecht = true;

                        if (tipp3 == zielZahl)
                        {
                            s3hatRecht = true;
                        }
                        if (s1hatRecht || s2hatRecht || s3hatRecht)
                        {

                            System.out.println("Wir haben einen Gewinner");
                            System.out.println(
                                    "Spieler eins hat richtig geraten" + s1hatRecht);
                            System.out.println(
                                    "Spieler zwei hat richtig geraten" + s2hatRecht);
                            System.out.println(
                                    "Spieler drei hat richtig geraten" + s3hatRecht);
                            System.out.println("Das Spiel ist aus");
                            break;

                        } else
                        {
                            System.out.println("Neuer Versuch");
                        }
                    }
                }
            }
        }
    }

}
Warum da jetzt überall statlc steht, gilt zu beantworten ;)
Tut mir leid, wenn ich jetzt so doof frage aber du meinst die Klasse starteSpiel, oder?
 
Also bis auf eine Fehlermeldung sieht es jetzt denk ich gut aus.
Java:
public class Ratespiel
{


    public static void main(String[] args)
    {
        Ratespiel spiel = new Ratespiel();
        spiel.starteSpiel();
    }

    private void starteSpiel() {
        // TODO Auto-generated method stub
        
    }

    public static class Spieler
    {

        int zahl = 0;

        public void raten()
        {
            zahl = (int) (Math.random() * 10);
            System.out.println("Ich tippe auf die Zahl:" + zahl);
        }
    }

    static class Ratespiel // nested type Ratespiel cannot hide an enclosing type
    {

        Spieler s1; // Spieler cannot be resolved to a type
        Spieler s2;
        Spieler s3;

        public void starteSpiel()
        {
            s1 = new Spieler();
            s2 = new Spieler();
            s3 = new Spieler();

            int tipp1 = 0;
            int tipp2 = 0;
            int tipp3 = 0;

            boolean s1hatRecht = false;
            boolean s2hatRecht = false;
            boolean s3hatRecht = false;

            int zielZahl = (int) (Math.random() * 10);
            System.out.println("ich denke mir eine Zahl zwischen 0 und 9 aus...");

            while (true)
            {
                System.out.println("Die zu ratende Zahl ist " + zielZahl);

                s1.raten();
                s2.raten();
                s3.raten();

                tipp1 = s1.zahl;
                System.out.println("Spieler eins tippte" + tipp1);

                tipp2 = s2.zahl;
                System.out.println("Spieler zwei tippte" + tipp2);

                tipp3 = s3.zahl;
                System.out.println("Spieler drei tippte" + tipp3);

                if (tipp1 == zielZahl)
                {
                    s1hatRecht = true;

                    if (tipp2 == zielZahl)
                    {
                        s2hatRecht = true;

                        if (tipp3 == zielZahl)
                        {
                            s3hatRecht = true;
                        }
                        if (s1hatRecht || s2hatRecht || s3hatRecht)
                        {

                            System.out.println("Wir haben einen Gewinner");
                            System.out.println(
                                    "Spieler eins hat richtig geraten" + s1hatRecht);
                            System.out.println(
                                    "Spieler zwei hat richtig geraten" + s2hatRecht);
                            System.out.println(
                                    "Spieler drei hat richtig geraten" + s3hatRecht);
                            System.out.println("Das Spiel ist aus");
                            break;

                        } else
                        {
                            System.out.println("Neuer Versuch");
                        }
                    }
                }
            }
        }
    }

}
Hab den Fehler wieder als Kommentar dazugeschrieben. Zeile 28.

Ihr seid echt super... vielen Dank.

Hat evlt. jemand noch andere Vorschläge, wie ich als Einsteiger am besten vorgehe?

Ich weiß, dass Thema gibts 100 mal und durch eben diese Themen bin ich auch zu dem Buch gekommen^^.
 
Wieso packst Du nicht jede Klasse wie von mir schon einmal gefordert, in eine eigene Datei? Dann hast Du gewisse Probleme nicht mehr.

Du hast eine äußere Klasse Ratespiel und eine innere Klasse Ratespiel. Das geht aber nicht. (Und das besagt die Fehlermeldung).

Daher keine Äußere Klasse, Und jede äußere Klasse in eine eigene Datei, kein static ... dann geht es evtl. schon. Und dann die Klammern bei den ifs umsetzen (siehe meine erste Antwort, bei der mir das schon aufgefallen war),
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben