BlueJ Tic Tac Toe öffnen?

Jänö

Mitglied
Ich habe auf der Seite Java/TicTacToe ? ZUM-Wiki
einen möglichkeit gefunden, in BlueJ tic tac toe zu programmieren und es in der Konsoloe auszugeben.
Ich hab zwei Klassen gemacht, in einer der code:
Java:
import java.io.*; // wird von der Eingabe benötigt
 
public class Spielfeld {
    //Eigenschaften
    private Kaestchen[][] feld;
    private static BufferedReader in; // Eingabe
 
    //Konstruktor
    public Spielfeld() {
        feld = new Kaestchen[3][3];
        for (int i=0;i<3;i++){// senkrecht
            for (int j=0;j<3;j++){// waagerecht
                feld[j][i]=new Kaestchen();
            }
        }
 
        // Vorbereitung für die Eingabe
        in = new BufferedReader(new InputStreamReader(System.in));
 
    }
 
    //Methoden
    public void setzeSpielstein(int x, int y, String stein){
        feld[x][y].setzeStein(stein);
    }
 
    public void gibSpielAus(){
        System.out.println("\n  012");
        for (int i=0;i<3;i++){
            System.out.print(i+" ");
            for (int j=0;j<3;j++){
                System.out.print(feld[j][i].getZeichen());
            }
            System.out.println(); // Zeilenumbruch nach 3 Kaestchen
        }
 
    }
 
    public void spieleEineRunde(){
        // unguenstig: Starre Anzahl von Zügen, immer 10 Züge
        int x,y;
        for (int i=1;i<5;i++){
            gibSpielAus();
            System.out.print("Spieler X bitte die x-Koordinate (0-2)");
            try {
            x=liesInt();
            }
             catch(IOException e) {
            x=-1;
            }
            System.out.print("Spieler X bitte die y-Koordinate (0-2)");
            try {
            y=liesInt();
            }
            catch(IOException e) {
            y=-1;
            }
            setzeSpielstein(x, y, "X");
            gibSpielAus();
            System.out.print("Spieler O bitte die x-Koordinate (0-2)");
            try {
            x=liesInt();
            }
             catch(IOException e) {
            x=-1;
            }
            System.out.print("Spieler O bitte die y-Koordinate (0-2)");
            try {
            y=liesInt();
            }
            catch(IOException e) {
            y=-1;
            }            
            setzeSpielstein(x, y, "O");
        }
    }
 
    // Methode für die Eingabe
    // Mehr hier: [url]http://www.wifo.uni-mannheim.de/Java/oop/OOPinJava/kapitel11/StandardEingabe_java.html[/url]
    public int liesInt() throws IOException {
        try {
        return Integer.parseInt(in.readLine());
        }
        catch(IOException e) {
          return (-1);
        }
    }
}

in der anderen der code

Java:
public class Kaestchen {
    String zeichen;
 
    public Kaestchen() {
        zeichen=" "; // Am Anfang leer
    }
 
    public void setzeStein(String pZeichen) {
        if (!zeichen.equals(" ")) {System.out.println("Besetzt!");} 
        else {
            if (pZeichen.equals("X") || pZeichen.equals("O")) {zeichen=pZeichen;} 
            else System.out.println("Ungueltige Eingabe, bitte X oder O waehlen!");
        }
    }
 
    public String getZeichen(){
        return zeichen;
    }
}public class Kaestchen {
    String zeichen;
 
    public Kaestchen() {
        zeichen=" "; // Am Anfang leer
    }
 
    public void setzeStein(String pZeichen) {
        if (!zeichen.equals(" ")) {System.out.println("Besetzt!");} 
        else {
            if (pZeichen.equals("X") || pZeichen.equals("O")) {zeichen=pZeichen;} 
            else System.out.println("Ungueltige Eingabe, bitte X oder O waehlen!");
        }
    }
 
    public String getZeichen(){
        return zeichen;
    }
}

die Klassen wurden automatisch verknüpft, aber jetzt weiß ich nicht wie ich Tic Tac Toe öffnen soll?
Wenn ich das Spielfeld erstelle, dann weiß ich nicht, welche Methode ich ausführen soll, abgesehn davon hab ich alle ausprobiert und keine geht.
 
Beste Antwort
C
Du setzt einen rechten Mausklick auf die Klasse Spielfeld und wählst "new Spielfeld()" aus. In der Objektbar wird ein neues Spielfeld-Objekt angelegt.

Dort wieder einen rechten Mausklick auf "spieleEineRunde()".

Viel Spaß!

Grüße
Florian
Dir fehlt eine Klasse, die die main()-Methode enthält bzw. eine main()-Methode überhaupt.
Ich kenne BlueJ nicht, aber ich glaube mal gelesen zu haben, dass BlueJ die main()-Methode vor dem BlueJ-Anwender versteckt.
 
Was genau ist mit "öffnen" gemeint?
Zum Starten eines Java-Programms braucht man immer eine main()-Methode. U.U. musst du an irgendeiner Stelle BlueJ erklären, was zum Starten deines Programms (und das meinst du doch?) gemacht werden soll.
 
Du setzt einen rechten Mausklick auf die Klasse Spielfeld und wählst "new Spielfeld()" aus. In der Objektbar wird ein neues Spielfeld-Objekt angelegt.

Dort wieder einen rechten Mausklick auf "spieleEineRunde()".

Viel Spaß!

Grüße
Florian
 
Beste Antwort
Dann kommt bei mir das:

012
0
1
2
Spieler X bitte die x-Koordinate (0-2)

In einer Konsole, also kann ich auch keine Koordinaten eingeben :/

Das "Spiel" ist ausgesprochen einfach. Gib eine 1 ein und klick Enter. dann musst Du die y-Koordinate eingeben, gibst zum Beispiel 0 ein und klickst wieder Enter. Dann ist der andere Spieler dran usw.

Viel mehr gibt die Konsolenversion tatsächlich nicht her.
 

Zurück
Oben