So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist.

hatamoto

Neues Mitglied
Hallo,
ich hab mit Java angefangen und wollte mit einem Tutorial Tic Tac Toe programmieren, um die Basics besser zu verstehen und wie man diese anwendet.
Bei dem Mann im Video ist der Code genau gleich und funktioniert bei ihm, doch bei mir ist dies nicht der Fall.
Bei placePiece(gameBoard,playerPos,"player");, bekomme ich die Fehlermeldung: playerPos cannot be resolved to a variable und bei placePiece(gameBoard,cpuPos,"cpu"); die Fehlermeldungen:
- Syntax error on token ""cpu"", invalid
FormalParameter
- gameBoard cannot be resolved to a type
- Syntax error on token ",", delete this token
- Return type for the method is missing
- Syntax error on token ")", { expected after this
token

Ich bin seit gut 2 Stunden komplett am verzweifeln und kann nicht verstehen, warum Java in diesem Fall so stress macht.




[CODE lang="java" highlight="31,43"]import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

public class TicTacToe {

static ArrayList<Integer> playerPositions=new ArrayList<Integer>();
static ArrayList<Integer> cpuPositions=new ArrayList<Integer>();

public static void main(String[] args) {
char [] [] gameBoard= {{' ','|',' ','|',' '},
{'-','+','-','+','-'},
{' ','|',' ','|',' '},
{'-','+','-','+','-'},
{' ','|',' ','|',' '}};

printGameboard(gameBoard);

while(true) {
Scanner scan = new Scanner(System.in);
System.out.println("Nenne das Kästchen. 1-9: ");
int playerPos=scan.nextInt();
while(playerPositions.contains(playerPos) || cpuPositions.contains(playerPos));
System.out.println("Schon belegt");
playerPos=scan.nextInt();

}

placePiece(gameBoard,playerPos,"player");
String result=checkWinner();
if(result.length()>0) {
System.out.println(result);
break;
}
Random rand=new Random();
int cpuPos=rand.nextInt(9)+1;
while(playerPositions.contains(cpuPos) || cpuPositions.contains(cpuPos));
System.out.println("Schon belegt");
cpuPos=rand.nextInt(9)+1;
}
placePiece(gameBoard,cpuPos,"cpu");
printGameboard(gameBoard);
result=checkWinner();
if (result.length()>0) {
System.out.println(result);
break;
}
}


public static void printGameboard(char [] [] gameBoard) {
for(char[] row:gameBoard) {
for(char c:row) {
System.out.print(c);
}
System.out.println();
}
}

public static void placePiece(char[] [] gameBoard, int pos, String user) {
char symbol=' ';
if(user.equals("player")) {
symbol='X';
playerPositions.add(pos);
} else if (user.equals("cpu")) {
symbol='O';
cpuPositions.add(pos);
}
switch(pos) {
case 1:
gameBoard[0] [0]=symbol;
break;
case 2:
gameBoard[0] [2]=symbol;
break;
case 3:
gameBoard[0] [4]=symbol;
break;
case 4:
gameBoard[2] [0]=symbol;
break;
case 5:
gameBoard[2] [2]=symbol;
break;
case 6:
gameBoard[2] [4]=symbol;
break;
case 7:
gameBoard[4] [0]=symbol;
break;
case 8:
gameBoard[4] [2]=symbol;
break;
case 9:
gameBoard[4] [4]=symbol;
break; }
}


public static String checkWinner() {
List topRow=Arrays.asList(1,2,3);
List midRow=Arrays.asList(4,5,6);
List botRow=Arrays.asList(7,8,9);
List leftCol=Arrays.asList(1,4,7);
List midCol=Arrays.asList(2,5,8);
List rightCol=Arrays.asList(3,6,9);
List cross1=Arrays.asList(1,5,9);
List cross2=Arrays.asList(7,5,3);

List<List>winning=new ArrayList<List>();
winning.add(topRow);
winning.add(midRow);
winning.add(botRow);
winning.add(leftCol);
winning.add(midCol);
winning.add(rightCol);
winning.add(cross1);
winning.add(cross2);

for(List L:winning) {
if(playerPositions.containsAll(L)) {
return "Hast gewonnen";
}else if(cpuPositions.contains(L)) {
return"Cpu gewinnt";
}else if(playerPositions.size()+cpuPositions.size()==9) {
return"Unentschieden";
}

}

return "";
}
} [/CODE]
 
K

kneitzel

Gast
Also ein erster Fehler scheint mir zu sein:

Java:
            while(playerPositions.contains(playerPos) || cpuPositions.contains(playerPos));
            System.out.println("Schon belegt");
            playerPos=scan.nextInt();   
            
        }

Das ; hinter den )) der while Schleife ist falsch, statt dessen gehört da wohl ein { hin.

Dadurch stimmen die { } zumindest erst einmal. Ob damit alle Fehler weg sind, musst Du dann einmal schauen ...
 
K

kneitzel

Gast
Der Fehler mit dem einen while kommt dann noch einmal .... und dann fehlt da noch eine }

Einfach einmal den ganzen korrigierten Code (Ohne Funktionalität zu prüfen, aber es müsste nun übersetzbar sein ...)

Java:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

public class TicTacToe {

    static ArrayList<Integer> playerPositions=new ArrayList<Integer>();
    static ArrayList<Integer> cpuPositions=new ArrayList<Integer>();

    public static void main(String[] args) {
        char[][] gameBoard = {{' ', '|', ' ', '|', ' '},
                {'-', '+', '-', '+', '-'},
                {' ', '|', ' ', '|', ' '},
                {'-', '+', '-', '+', '-'},
                {' ', '|', ' ', '|', ' '}};

        printGameboard(gameBoard);

        while (true) {
            Scanner scan = new Scanner(System.in);
            System.out.println("Nenne das Kästchen. 1-9: ");
            int playerPos = scan.nextInt();
            while (playerPositions.contains(playerPos) || cpuPositions.contains(playerPos)) {
                System.out.println("Schon belegt");
                playerPos = scan.nextInt();

            }

            placePiece(gameBoard, playerPos, "player");
            String result = checkWinner();
            if (result.length() > 0) {
                System.out.println(result);
                break;
            }

            Random rand = new Random();
            int cpuPos = rand.nextInt(9) + 1;
            while (playerPositions.contains(cpuPos) || cpuPositions.contains(cpuPos)) {
                System.out.println("Schon belegt");
                cpuPos = rand.nextInt(9) + 1;
            }

            placePiece(gameBoard, cpuPos, "cpu");
            printGameboard(gameBoard);
            result = checkWinner();
            if (result.length() > 0) {
                System.out.println(result);
                break;
            }
        }
    }

    public static void printGameboard(char [] [] gameBoard) {
        for(char[] row:gameBoard) {
            for(char c:row) {
                System.out.print(c);
            }
            System.out.println();
        }
    }

    public static void placePiece(char[] [] gameBoard,  int pos, String user) {
        char symbol=' ';
        if(user.equals("player")) {
            symbol='X';
            playerPositions.add(pos);
        } else if (user.equals("cpu")) {
            symbol='O';
            cpuPositions.add(pos);
        }
        switch(pos) {
            case 1:
                gameBoard[0] [0]=symbol;
                break;
            case 2:
                gameBoard[0] [2]=symbol;
                break;
            case 3:
                gameBoard[0] [4]=symbol;
                break;
            case 4:
                gameBoard[2] [0]=symbol;
                break;
            case 5:
                gameBoard[2] [2]=symbol;
                break;
            case 6:
                gameBoard[2] [4]=symbol;
                break;
            case 7:
                gameBoard[4] [0]=symbol;
                break;
            case 8:
                gameBoard[4] [2]=symbol;
                break;
            case 9:
                gameBoard[4] [4]=symbol;
                break; }
    }


    public static String checkWinner() {
        List topRow=Arrays.asList(1,2,3);
        List midRow=Arrays.asList(4,5,6);
        List botRow=Arrays.asList(7,8,9);
        List leftCol=Arrays.asList(1,4,7);
        List midCol=Arrays.asList(2,5,8);
        List rightCol=Arrays.asList(3,6,9);
        List cross1=Arrays.asList(1,5,9);
        List cross2=Arrays.asList(7,5,3);

        List<List>winning=new ArrayList<List>();
        winning.add(topRow);
        winning.add(midRow);
        winning.add(botRow);
        winning.add(leftCol);
        winning.add(midCol);
        winning.add(rightCol);
        winning.add(cross1);
        winning.add(cross2);

        for(List L:winning) {
            if(playerPositions.containsAll(L)) {
                return "Hast gewonnen";
            }else if(cpuPositions.contains(L)) {
                return"Cpu gewinnt";
            }else if(playerPositions.size()+cpuPositions.size()==9) {
                return"Unentschieden";
            }

        }

        return "";
    }
}
 

hatamoto

Neues Mitglied
Also ein erster Fehler scheint mir zu sein:

Java:
            while(playerPositions.contains(playerPos) || cpuPositions.contains(playerPos));
            System.out.println("Schon belegt");
            playerPos=scan.nextInt();  
           
        }

Das ; hinter den )) der while Schleife ist falsch, statt dessen gehört da wohl ein { hin.

Dadurch stimmen die { } zumindest erst einmal. Ob damit alle Fehler weg sind, musst Du dann einmal schauen ...
Ja das war der Fehler. Vielen vielen Dank.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Screenshots machen und zwar viele und speichern Java Basics - Anfänger-Themen 12
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
s_1895 zu viele Zeilen in der Main Methode Java Basics - Anfänger-Themen 4
P Methode die ausgibt wie viele Primzahlen es zwischen 2 und n gibt Java Basics - Anfänger-Themen 10
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
S Hilfe : Unendlich viele Zufallszahlen erstellen? Java Basics - Anfänger-Themen 8
I Wie viele 1 an Bits hat die Zahl x? Java Basics - Anfänger-Themen 5
R Zu viele leere Parameter Java Basics - Anfänger-Themen 8
T Variablen Beliebig viele Arrays in Schleife erstellen Java Basics - Anfänger-Themen 1
M Aufgabe: Eine Klasse und viele Untermethoden Java Basics - Anfänger-Themen 30
D Klassen Doppelt so viele Elemente in Arraylist ? Java Basics - Anfänger-Themen 4
D zu viele MySQL Connections Java Basics - Anfänger-Themen 18
F Threads ftp4j, viele Dateien upload Java Basics - Anfänger-Themen 5
L Viele Fragen zu den Grundlagen Java Basics - Anfänger-Themen 5
B Beliebig viele Rechtecke erzeugen Java Basics - Anfänger-Themen 5
N Beliebig viele parameter Java Basics - Anfänger-Themen 3
D Viele grafische unterschiede von Windows xp zu Windows 7 Java Basics - Anfänger-Themen 3
T unterschiedlich viele parameter übergeben Java Basics - Anfänger-Themen 5
T Zu viele Fenster - HILFE! Java Basics - Anfänger-Themen 5
Prafy Beliebig viele Arrays erstellen? Java Basics - Anfänger-Themen 2
J Methoden Beliebig viele Objekt-Eingabeparameter im Konstruktor Java Basics - Anfänger-Themen 6
T viele "kleine" Fragen... Java Basics - Anfänger-Themen 3
M Zu viele Verkettungen von Klassen Java Basics - Anfänger-Themen 4
G Erste Schritte Wie viele Montage gab es? Java Basics - Anfänger-Themen 14
M Input/Output Viele short aus Datei lesen und von Little Endian zu Big Endian umwandeln Java Basics - Anfänger-Themen 12
S Variablen viele Instanzvariablen vermeiden Java Basics - Anfänger-Themen 14
El_Lobo Methoden Zu viele Getter- und Settermethoden - geht das einfacher? Java Basics - Anfänger-Themen 3
L buffered reader produziert zu viele und seltsame zeichen Java Basics - Anfänger-Themen 2
D Erste Schritte Viele Objekte einer Klasse "verwalten" Java Basics - Anfänger-Themen 17
T Beliebig viele Werte in Array zwischenspeichern Java Basics - Anfänger-Themen 15
S Viele Fragen von einem Anfänger in Java Java Basics - Anfänger-Themen 2
F Viele Controller-Klassen Java Basics - Anfänger-Themen 5
P Datentypen extrem viele Fehler nur irgendwie seh ich den Grund ned... Java Basics - Anfänger-Themen 3
M Viele GUI-Variablen Java Basics - Anfänger-Themen 4
O Wie kann man das einfach lösen? (dynamisch viele Attribute) Java Basics - Anfänger-Themen 6
U JTable viele möglichkeiten, keine Lösung Java Basics - Anfänger-Themen 5
H Reflexion: Eine Methode, beliebig viele Parameter (Java 1.4.2) Java Basics - Anfänger-Themen 8
M Viele verschachtelte Schleifen Java Basics - Anfänger-Themen 14
Avalarion Erschaffung eines Shadowrun Charaktergenerators - Viele, Viele Fragen! Java Basics - Anfänger-Themen 6
S Viele Konstanten, EnumSet? Java Basics - Anfänger-Themen 3
S Stilfrage: Neue Klasse wenn es in einer Klasse zu viele Methoden gibt? Java Basics - Anfänger-Themen 14
Kasu So viele "_ " ausgeben, wie ein String lang ist Java Basics - Anfänger-Themen 4
I viele Dateinamen in ein String-Array mit File().list() Java Basics - Anfänger-Themen 4
mwildam Textfile lesen und schreiben - so viele Möglichkeiten Java Basics - Anfänger-Themen 5
U Zu viele werte in einer klasse Java Basics - Anfänger-Themen 4
K Viele Fragen eines Anfängers-Fließkommazahlen/Typenwandlung Java Basics - Anfänger-Themen 5
W Viele Objekte mit einem Konstrukor erzeugen Java Basics - Anfänger-Themen 10
R einfaches Programm, viele Probleme Java Basics - Anfänger-Themen 29
G viele zahlen mit wenig code Java Basics - Anfänger-Themen 4
X 1 MySQL-Verbindung und viele Threads Java Basics - Anfänger-Themen 4
E Viele Fragen Java Basics - Anfänger-Themen 8
J viele Objekte erzeugen Java Basics - Anfänger-Themen 21
J Große *.Text Datei zum verschicken in viele kleine Java Basics - Anfänger-Themen 7
O viele Name mit jeweils zugehörigen Status in .txt Speichern Java Basics - Anfänger-Themen 16
K ResultSet: Wie viele Rows beinhaltet es? Java Basics - Anfänger-Themen 6
X Viele Komponenten automatisch erzeugen Java Basics - Anfänger-Themen 2
C zu viele paint()'s. Java Basics - Anfänger-Themen 6
M Viele Textfelder auslesen Java Basics - Anfänger-Themen 3
P x-viele Variablen anlegen Java Basics - Anfänger-Themen 2
F Mit der Zahl n n-viele Arrays erstellen ?! Java Basics - Anfänger-Themen 4
C Fehlermeldungen lesen Java Basics - Anfänger-Themen 2
R Compiler-Fehler HalloWelt-Programm korrekt abgeschrieben, trotzdem Fehlermeldungen Java Basics - Anfänger-Themen 2
V Komplizierte Compiler Fehlermeldungen Java Basics - Anfänger-Themen 7
D Array/Bubblesort Fehlermeldungen Java Basics - Anfänger-Themen 1
N Datentypen Frage bezüglich unbekannter Fehlermeldungen. Java Basics - Anfänger-Themen 1
T Hilfe zu Fehlermeldungen Java Basics - Anfänger-Themen 7
D fehlermeldungen Java Basics - Anfänger-Themen 8
G ungewöhnliche Fehlermeldungen in Eclipse Java Basics - Anfänger-Themen 29
I Erste Schritte Eigene Fehlermeldungen bei Exceptions Java Basics - Anfänger-Themen 19
J Ausgabe von Fehlermeldungen Java Basics - Anfänger-Themen 3
G wie liest man Fehlermeldungen Java Basics - Anfänger-Themen 3
M Controller + View: Fehlermeldungen Java Basics - Anfänger-Themen 2
N Interfacefür fehlermeldungen? Java Basics - Anfänger-Themen 23
C Fehlermeldungen umleiten auf JDialog Java Basics - Anfänger-Themen 2
G Fehlermeldungen bei Methoden Java Basics - Anfänger-Themen 9
D JButton Fehlermeldungen Java Basics - Anfänger-Themen 14
T Eclipse mit unsinnigen Fehlermeldungen? Java Basics - Anfänger-Themen 5
G Fehlermeldungen beim Ausführen Java Basics - Anfänger-Themen 9
G Vererbung und Fehlermeldungen Java Basics - Anfänger-Themen 2
S Bekomme Fehlermeldungen nicht weg ! :-| Java Basics - Anfänger-Themen 5
K Hab ich dass so richtig erklärt (Objekte und Referenzen)? Java Basics - Anfänger-Themen 5
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
A Methoden Guten Tag , ich wollte so machen dass wenn meine frog an eine fly/bee geht dann an meine Tafel geht der zahl +1 hoch. Java Basics - Anfänger-Themen 2
B Überprüfung dass Zahl nur aus 0,1 besteht Java Basics - Anfänger-Themen 2
S mehrere TreeSets so speichern, dass man sie miteinander vergleichen kann Java Basics - Anfänger-Themen 1
berserkerdq2 Habe ein Spiel entwickelt, dass immer in der 4 Runde einen cast-Fehler erhält Java Basics - Anfänger-Themen 3
berserkerdq2 Wo ist der SInn, dass man den Stream, den ich zum Schreiben nutze, outputstream nenne? Java Basics - Anfänger-Themen 5
U Methode wird genutzt, ohne dass ich die aufrufe? Java Basics - Anfänger-Themen 4
berserkerdq2 Wie würde man einen regulären Ausdruck in Java schreiben, der prüft, dass zwei bestimtme Zahlen nicht nebeneinadner sind? Java Basics - Anfänger-Themen 3
K Präzedenregeln in Java sagen, dass +expr und -expr vor + von Addition und - von Addition stehen, warum wird dann z. B. a+b als eine Addition ausgeführ Java Basics - Anfänger-Themen 7
M Wie schreibe ich eine if-Verzweigung um, so dass ein Bedingungsoperator benutzt wird? Java Basics - Anfänger-Themen 9
M Wie kann ich festlegen, dass ein Attribut maximal den Wert 0 erreicht, also nicht in den negativen Bereich fällt? Java Basics - Anfänger-Themen 4
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
B Programm, dass alle 3 Tage eine Webseite öffnet? Java Basics - Anfänger-Themen 20
T Feststellen, dass Wert zu groß; Caesar Chiffre Java Basics - Anfänger-Themen 3
mhmt_03 dafür sorgen, dass im JTextfield nur zahlen eingebbar sind Java Basics - Anfänger-Themen 9
M Was habe ich hier falsch, dass wenn ich z.B.: 11 eingebe mir false zurück gegeben wird? Java Basics - Anfänger-Themen 2
W Programm dass Palindrome erkennt Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben