TicTacToe

Javaguru8

Neues Mitglied
Hallo,
ich habe ein Problem, undzwar habe ich ein kleines TicTacToe Spiel programmiert und es funktioniert auch alles einwandfrei, nur bei der Gewinnermittlung habe ich Probleme. Sieg und Niederlage wird eindeutig ausgegeben, jedoch bei einem Unentschieden wird ab dem zweiten Spiel nichts mehr ausgegeben und wenn man beim Ersten Mal im letzten Zug gewinnt, dann wird "gewonnen und unentschieden" ausgegeben. Das alles ist mein Quellcode. Vielen Dank schonmal für die Antworten.
Java:
public class TicTacToeSimple extends Application implements EventHandler<ActionEvent> {

    // neun Buttons

    private Button spielfeld00;

    private Button spielfeld01;

    private Button spielfeld02;

    private Button spielfeld10;

    private Button spielfeld11;

    private Button spielfeld12;

    private Button spielfeld20;

    private Button spielfeld21;

    private Button spielfeld22;

    private Button spielfeldR;

    private boolean playerwin = false;

    private int click;

    private String farbe;



    /**

    * @param args

    *            the command line arguments

    */

    public static void main(String[] args) {

        launch(args);

    }



    /*

    * Start der GUI

    */

    public void start(Stage primaryStage) {

        primaryStage.setTitle("TicTacToe");

        // Layout: Grid, aufgebaut wie eine Tabelle

        GridPane grid = new GridPane();

        // Abstaende zwischen den einzelnen Komponenten

        grid.setHgap(10);

        grid.setVgap(10);

        // Abstaende des Grid im Fenster in Pixel: top,right,bottom,left

        grid.setPadding(new Insets(10, 20, 20, 10));

        // neun Buttons erzeugen, Listener registrieren und dem Panel

        // hinzufuegen

        spielfeld00 = new Button();

        spielfeld00.setId("Knopf00");

        spielfeld00.setMinSize(50, 50);

        grid.add(spielfeld00, 0, 0);

        spielfeld00.setOnAction(this);

        spielfeld01 = new Button();

        spielfeld01.setId("Knopf01");

        spielfeld01.setMinSize(50, 50);

        grid.add(spielfeld01, 0, 1);

        spielfeld01.setOnAction(this);

        spielfeld02 = new Button();

        spielfeld02.setId("Knopf02");

        spielfeld02.setMinSize(50, 50);

        grid.add(spielfeld02, 0, 2);

        spielfeld02.setOnAction(this);

        spielfeld10 = new Button();

        spielfeld10.setId("Knopf10");

        spielfeld10.setMinSize(50, 50);

        grid.add(spielfeld10, 1, 0);

        spielfeld10.setOnAction(this);

        spielfeld11 = new Button();

        spielfeld11.setId("Knopf11");

        spielfeld11.setMinSize(50, 50);

        grid.add(spielfeld11, 1, 1);

        spielfeld11.setOnAction(this);

        spielfeld12 = new Button();

        spielfeld12.setId("Knopf12");

        spielfeld12.setMinSize(50, 50);

        grid.add(spielfeld12, 1, 2);

        spielfeld12.setOnAction(this);

        spielfeld20 = new Button();

        spielfeld20.setId("Knopf20");

        spielfeld20.setMinSize(50, 50);

        grid.add(spielfeld20, 2, 0);

        spielfeld20.setOnAction(this);

        spielfeld21 = new Button();

        spielfeld21.setId("Knopf21");

        spielfeld21.setMinSize(50, 50);

        grid.add(spielfeld21, 2, 1);

        spielfeld21.setOnAction(this);

        spielfeld22 = new Button();

        spielfeld22.setId("Knopf22");

        spielfeld22.setMinSize(50, 50);

        grid.add(spielfeld22, 2, 2);

        spielfeld22.setOnAction(this);

        spielfeldR = new Button();

        spielfeldR.setId("restart");

        spielfeldR.setMinSize(50, 50);

        spielfeldR.setText("New");

        grid.add(spielfeldR, 1, 3);

        spielfeldR.setOnAction(this);

        // VBox mit Menue oben, darunter der Rest

        VBox root = new VBox();

        root.getChildren().addAll(grid);

        primaryStage.setScene(new Scene(root));

        primaryStage.setResizable(false);

        primaryStage.show();

    }



    /*

    * Eventhandler

    */

    public void handle(ActionEvent event) {

        if (((Button) event.getSource()).getId().toString().equals("restart")) {

            spielfeld00.setText("");

            spielfeld00.setStyle("");

            spielfeld01.setText("");

            spielfeld01.setStyle("");

            spielfeld02.setText("");

            spielfeld02.setStyle("");

            spielfeld10.setText("");

            spielfeld10.setStyle("");

            spielfeld11.setText("");

            spielfeld11.setStyle("");

            spielfeld12.setText("");

            spielfeld12.setStyle("");

            spielfeld20.setText("");

            spielfeld20.setStyle("");

            spielfeld21.setText("");

            spielfeld21.setStyle("");

            spielfeld22.setText("");

            spielfeld22.setStyle("");

            playerwin = false;



        }

        click++;

        farbe = ((Button) event.getSource()).getStyle();



        if ((click % 2 == 0) && farbe == "" && playerwin == false

                && !((Button) event.getSource()).getId().toString().equals("restart")) {

            System.out.println("Spieler 2 ist dran");

            ((Button) event.getSource()).setStyle("-fx-base: red;");

            ((Button) event.getSource()).setText("O");

            if (win(event)) {

                System.out.println("Spieler 2 hat gewonnen");

            }

        } else if ((click % 2 == 1) && farbe == "" && playerwin == false

                && !((Button) event.getSource()).getId().toString().equals("restart")) {

            System.out.println("Spieler 1 ist dran");

            ((Button) event.getSource()).setStyle("-fx-base: green;");

            ((Button) event.getSource()).setText("X");

            if (win(event)) {

                System.out.println("Spieler 1 hat gewonnen");

            }

        } else if (playerwin == true) {

            System.out.println("Spiel vorbei klicken sie auf new");



        } else {

            click--;

            System.out.println("Der Button ist schon belegt!");

        }

        System.out.println("Gedrueckt:" + ((Button) event.getSource()).getId() + "\n");



        if (click == 9 && farbe == ("-fx-base: green;")) {

            System.out.println("Spieler 1 hat gewonnen");



        } else if (click == 9 && farbe == ("-fx-base: red;")) {

            System.out.println("Spieler 2 hat gewonnen");



        } else if (click == 9) {

            System.out.println("UNENTSCHIEDEN");

        }

    }



    public boolean win(ActionEvent event) {

        String player = (((Button) event.getSource()).getText());

        if ((spielfeld00.getText().equals(player) && spielfeld01.getText().equals(player)

                && spielfeld02.getText().equals(player))

                || (spielfeld10.getText().equals(player) && spielfeld11.getText().equals(player)

                        && spielfeld12.getText().equals(player))

                || (spielfeld20.getText().equals(player) && spielfeld21.getText().equals(player)

                        && spielfeld22.getText().equals(player))

                || (spielfeld00.getText().equals(player) && spielfeld10.getText().equals(player)

                        && spielfeld20.getText().equals(player))

                || (spielfeld01.getText().equals(player) && spielfeld11.getText().equals(player)

                        && spielfeld21.getText().equals(player))

                || (spielfeld02.getText().equals(player) && spielfeld12.getText().equals(player)

                        && spielfeld22.getText().equals(player))

                || (spielfeld00.getText().equals(player) && spielfeld11.getText().equals(player)

                        && spielfeld22.getText().equals(player))

                || (spielfeld02.getText().equals(player) && spielfeld11.getText().equals(player)

                        && spielfeld20.getText().equals(player))) {

            playerwin = true;

            return true;

        } else {

            return false;

        }

    }

}
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
K TicTacToe belegtes feld nicht neu besetzbar Java Basics - Anfänger-Themen 1
K TicTacToe belegtes Feld nicht neu besetzbar Java Basics - Anfänger-Themen 3
enesss tictactoe spiel Java Basics - Anfänger-Themen 5
Jxhnny.lpz TicTacToe Spiel vs Computer. (Probleme) Java Basics - Anfänger-Themen 7
TicTacToe Java Basics - Anfänger-Themen 6
C TicTacToe Java Basics - Anfänger-Themen 2
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
A Überprüfung für unentschieden in TicTacToe Java Basics - Anfänger-Themen 10
A Überprüfung in TicTacToe Java Basics - Anfänger-Themen 5
A TicTacToe Java Basics - Anfänger-Themen 8
tom.j85 TicTacToe - probleme beim Casten Java Basics - Anfänger-Themen 6
K Fehler beim Programmieren von TicTacToe Java Basics - Anfänger-Themen 12
A TicTacToe funktioniert bis auf "schiefer" Sieg Java Basics - Anfänger-Themen 6
shiroX Input/Output TicTacToe-Savegame Java Basics - Anfänger-Themen 1
shiroX Methoden Mögliche Spielstände bei TicTacToe Java Basics - Anfänger-Themen 14
M Array und Objektorientierung? - TicTacToe Spiel Java Basics - Anfänger-Themen 43
P TicTacToe Problem mit Win Methode Java Basics - Anfänger-Themen 4
Z TicTacToe mit Array Java Basics - Anfänger-Themen 6
T TicTacToe Spielfeld Java Basics - Anfänger-Themen 7
B TicTacToe Java Basics - Anfänger-Themen 2
S TicTacToe Java Basics - Anfänger-Themen 4
I TicTacToe blöde KI Java Basics - Anfänger-Themen 2
I Fehler bei TicTacToe Java Basics - Anfänger-Themen 108
G TicTacToe KI Java Basics - Anfänger-Themen 15
C Problem TicTacToe Java Basics - Anfänger-Themen 6
P 3D TicTacToe - Unentschieden Java Basics - Anfänger-Themen 5
G Tictactoe Java Basics - Anfänger-Themen 9
B TicTacToe Programmieren Java Basics - Anfänger-Themen 2
M Einfaches TicTacToe Programm Java Basics - Anfänger-Themen 19
H TicTacToe Fehler beim Compilieren Java Basics - Anfänger-Themen 7
cizzo TicTacToe Java Basics - Anfänger-Themen 6
W TicTacToe - Porblem mit dem Code.. Java Basics - Anfänger-Themen 5
H Hilfe bei TicTacToe mit jEdit Java Basics - Anfänger-Themen 7
0 TicTacToe, Problem mit den Checkbox-Aktionen Java Basics - Anfänger-Themen 6
N brauche hilfe zu tictactoe Java Basics - Anfänger-Themen 2
kulturfenster Problem bei TicTacToe Java Basics - Anfänger-Themen 11
P Ein einfaches Spiel: TicTacToe. Fehler und Vorschläge Java Basics - Anfänger-Themen 3
H TicTacToe: Zeit zwischen Zügen lassen Java Basics - Anfänger-Themen 9
M TicTacToe Java Basics - Anfänger-Themen 7
H TicTacToe-geeignete Klassenhierarchie Java Basics - Anfänger-Themen 3
G Hilfe bei TicTacToe Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben