Beispiel #1
0
    private boolean sjekkKolonne(MinStackPane pane) {
        boolean flagg = true;
        String tekst = pane.hentTekst();

        /* Holder raden konstant, og går gjennom kolonnene */
        int id = pane.getRadId();
        for (int i = 0; i < 3; i++) {
            if (panes[id][i] == pane) {}
            else {
                if (!panes[id][i].hentTekst().equals(tekst)) {
                    flagg = false;
                }
            }
        }
        return flagg;
    }
Beispiel #2
0
    private boolean sjekkRad(MinStackPane pane) {
        boolean flagg = true;
        String tekst = pane.hentTekst();

        /* Holder kolonnen konstant, og går gjennom radene */
        int id = pane.getKolonneId();
        for (int i = 0; i < 3; i++) {
            // Pane'n vår har teksten 'tekst'
            if (panes[i][id] == pane) {}
            else {
                if (!panes[i][id].hentTekst().equals(tekst)) {
                    flagg = false;
                }
            }
        }
        return flagg;
    }
Beispiel #3
0
 @Override
 public void handle(MouseEvent event) {
     if (pane.getChildren().isEmpty()) {
         // String tekst = teller++ % 2 == 0 ? "X" : "O";
         String tekst;
         if (teller % 2 == 0) tekst = "X";
         else tekst = "O";
         Label label = new Label(tekst);
         label.setFont(new Font(40));
         pane.getChildren().add(label);
         pane.settTekst(tekst);
         teller++;
     }
     if (sjekkBrett(pane)) {
         System.out.println("YAY");
     }
 }
Beispiel #4
0
    private boolean sjekkVenstreDiagonal(MinStackPane pane) {
        boolean flagg = true;
        String tekst = pane.hentTekst();

        // Gå igjennom 2 - 4 - 6
        for (int i = 2; i < 7; i += 2) {
            if (panes1d[i] == pane) {}
            else if (!panes1d[i].hentTekst().equals(tekst)) {
                flagg = false;
            }
        }
        return flagg;
    }
Beispiel #5
0
    private boolean sjekkHøyreDiagonal(MinStackPane pane) {
        boolean flagg = true;
        String tekst = pane.hentTekst();

        // Gå igjennom 0 - 4 - 8
        for (int i = 0; i < 9; i += 4) {
            if (panes1d[i] == pane) {}
            else if (!panes1d[i].hentTekst().equals(tekst)) {
                flagg = false;
            }
        }
        return flagg;
    }
Beispiel #6
0
    private boolean sjekkDiagonal(MinStackPane pane) {
        boolean flagg = false;
        int id = pane.hentId();

        // Diagonalpane'ene er alle partall
        if (id % 2 != 0) return false;

        // Midt-pane'n. Sjekke begge diagonalene
        else if (id == 4) {
            if (sjekkHøyreDiagonal(pane) || sjekkVenstreDiagonal(pane)) flagg = true;
        }

        // Høyrediagonalen er delelig med 4
        else if (id % 4 == 0) {
            flagg = sjekkHøyreDiagonal(pane);
        }

        // Det er ikke venstrediagonalen
        else {
            flagg = sjekkVenstreDiagonal(pane);
        }
        return flagg;
    }
Beispiel #7
0
    @Override
    public void start(Stage primaryStage) throws Exception {

        brett = new GridPane();
        panes = new MinStackPane[3][3];
        panes1d = new MinStackPane[9];

        /* Lag rutenett */
        int t = 0;
        for (int r = 0; r < 3; r++) {
            for (int k = 0; k < 3; k++) {
                MinStackPane pane = new MinStackPane(t, " ", r, k);
                pane.setStyle("-fx-border-color: black");
                pane.setOnMouseReleased(new Lytter(pane));
                panes[r][k] = pane;
                panes1d[t] = pane;
                brett.add(pane, k, r);
                t++;
            }
        }

        /* Lag rutene like store og sett brettet i midten 
        * Constraint -> begrensning
        */
        int storrelse = 150;
        for (int i = 0; i < 3; i++) {
            brett.getColumnConstraints().add(new ColumnConstraints(storrelse));
            brett.getRowConstraints().add(new RowConstraints(storrelse));
        }
        brett.setAlignment(Pos.CENTER);

        /* Klarer-knapp */
        Button klarer = new Button("Klarer");
        klarer.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                for (MinStackPane pane : panes1d) {
                    pane.getChildren().clear();
                    pane.settTekst(" ");
                }
            }
        });
        klarer.setAlignment(Pos.CENTER);

        /* DET SAMME! */
        root = new BorderPane(brett);
//        root = new BorderPane();
//        root.getChildren().add(brett);
        root.setTop(new FlowPane(klarer));

        ticTacScene = new Scene(root);
        
        /* Lag startvindu med en knapp for å bytte scene */
        Button startButton = new Button("La oss starte");
        /* Annonym klasse (IKKE PENSUM) */
        startButton.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                // Bytt scnee ved knappetrykk
                primaryStage.setScene(ticTacScene);
            }
        });
        FlowPane startRoot = new FlowPane(startButton);
        startScene = new Scene(startRoot);

        primaryStage.setScene(startScene);
        primaryStage.setTitle("TicTacToe");
        primaryStage.show();

    }