import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.event.ActionEvent; import javafx.scene.control.Label; import javafx.scene.layout.GridPane; import logic.*; import java.util.ArrayList; import java.util.List; public class SceneController { private Board board; private Actor player; private Actor enemy; public int playerTurn = 1; public void initData(Board board, Actor player, Actor enemy) { this.board = board; this.player = player; this.enemy = enemy; } public void playerTurn(){ this.playerTurn = 1; turnlabel.setText("Your Turn"); } @FXML private GridPane gridPane; @FXML private Label turnlabel; @FXML private Button button1, button2, button3, button4, button5, button6, button7, button8, button9; @FXML private List<Button> buttonList; @FXML public void initialize() { // Liste der Buttons erstellen und Buttons hinzufügen buttonList = new ArrayList<>(); buttonList.add(button1); buttonList.add(button2); buttonList.add(button3); buttonList.add(button4); buttonList.add(button5); buttonList.add(button6); buttonList.add(button7); buttonList.add(button8); buttonList.add(button9); } public void aiTurn(){ // AI's Turn playerTurn = 0; turnlabel.setText("AI's Turn"); int[] coordinates = enemy.makeMove(board); // DEBUG System.out.println("Enemy: " + coordinates[0] + ", " + coordinates[1]); initialize(); buttonList.get(coordinates[0] + coordinates[1] * 3).setText("o"); playerTurn(); } public void over(){ if(board.checkForWin()){ System.out.println("Game is over!"); if(playerTurn == 0){ turnlabel.setText("You win!"); }else if(playerTurn == 1){ turnlabel.setText("You lose!"); } playerTurn = -1; } } // Diese Funktion wird beim Button-Click aufgerufen @FXML private void handleButtonClick(ActionEvent event) { Button pressedButton = (Button) event.getSource(); // Das gedrückte Button-Objekt wird extrahiert String buttonText = pressedButton.getText(); // Der Text des gedrückten Buttons wird extrahiert // Zugriff auf die Koordinaten des Buttons: int row = GridPane.getRowIndex(pressedButton); // Zeilen-Koordinate int col = GridPane.getColumnIndex(pressedButton); // Spalten-Koordinate if(buttonText.equals(" ") && playerTurn == 1) { // Setze X pressedButton.setText("X"); player.makeMove(board, col, row); over(); aiTurn(); over(); board.printBoard(); } } }