diff --git a/Board.java b/Board.java index 895d2e78a0d8cef9e2c87fb86a1f74b00ebb1a18..7e74f2fb208fc2c9d8ab8424d98ceb113b711390 100644 --- a/Board.java +++ b/Board.java @@ -10,27 +10,27 @@ public class Board extends Thread { * 3 4 5 * 6 7 8 */ - Tile tiles[] = new Tile[9]; + private Tile tiles[] = new Tile[9]; /** * This Array contains the Players. */ - Player players[] = new Player[2]; + private Player players[] = new Player[2]; /** * This Integer defines which character gets to draw first. */ - int firstPlayer; + private int firstPlayer; /** * This Integer defines which character can currently draw on a tile. */ - int currentPlayer; + private int currentPlayer; /** * This Integer tracts the amount of marks that were already placed. */ - int marks; + private int marks; /** * Constructor of the Board class. @@ -64,6 +64,63 @@ public class Board extends Thread { marks = 0; } + /** + * Getter for currentPlayer + * + * @return current player + */ + public int getCurrentPlayer() { + return currentPlayer; + } + + /** + * Getter for firstPlayer + * + * @return first player + */ + public int getFirstPlayer() { + return firstPlayer; + } + + /** + * Getter for players + * + * @return players + */ + public Player[] getPlayers() { + return players; + } + + + /** + * Getter for player at specific index + * + * @param index location of player in players + * @return specific player + */ + public Player getPlayer(int index) { + return players[index]; + } + + /** + * Determins if a specific tile has an owner. + * + * @param index loction of tile in tiles + * @return specific tile has owner + */ + public boolean hasTileOwner(int index) { + return tiles[index].existOwner(); + } + + /** + * Sets the owner of a specific tile + * + * @param index loction of tile in tiles + * @param owner number of player who now owns tile + */ + public void setTileOwner(int index, int owner) { + tiles[index].setOwner(owner); + } /** * Ends the turn by increasing the mark counter and changing the player. diff --git a/GameUI.java b/GameUI.java index 39cc7038a2d5f1e6355b1ea7259ed7a18cd17d2d..e2a79b556adc874883394c7d7ea2e560170ecac9 100644 --- a/GameUI.java +++ b/GameUI.java @@ -90,7 +90,7 @@ public class GameUI extends Application{ Button reset = new Button("Reset"); reset.setStyle("-fx-font-size: 30px; -fx-font-family: 'Impact'; -fx-text-fill: black;"); reset.setOnAction(e -> { - board = new Board(board.players, board.firstPlayer); + board = new Board(board.getPlayers(), board.getFirstPlayer()); for(int i = 0; i < 9; i++){ int index = i; @@ -104,7 +104,7 @@ public class GameUI extends Application{ buttons[index].setGraphic(imageView); } - updatePlayerTurn(board.currentPlayer); + updatePlayerTurn(board.getCurrentPlayer()); stage.setScene(game); }); @@ -131,15 +131,16 @@ public class GameUI extends Application{ * @param stage current scene */ private void handleTurn(int index, Stage stage){ - if (board.tiles[index].existOwner()) { + if (board.hasTileOwner(index)) { return; } - board.tiles[index].setOwner(board.currentPlayer); + int currentPlayer = board.getCurrentPlayer(); + board.setTileOwner(index, currentPlayer); //replace symbols with images int i = rnd.nextInt(3); - String imageSymbols = board.currentPlayer == 0 ? getClass().getResource("/textures/1_" + i + ".png").toExternalForm() : - getClass().getResource("/textures/0_" + i + ".png").toExternalForm(); + String imageSymbols = currentPlayer == 0 ? getClass().getResource("/textures/1_" + i + ".png").toExternalForm() : + getClass().getResource("/textures/0_" + i + ".png").toExternalForm(); Image image = new Image(""+ imageSymbols); ImageView imageView = new ImageView(image); @@ -152,12 +153,12 @@ public class GameUI extends Application{ switch (board.turnEnd()) { case 0: - updatePlayerTurn(board.currentPlayer); + updatePlayerTurn(currentPlayer); break; case 1: //changes label state for the winning player and updates its score - winnerLabel.setText("Player " + (board.currentPlayer == 0 ? "X" : "O") + " wins!"); + winnerLabel.setText("Player " + (currentPlayer == 0 ? "X" : "O") + " wins!"); updatePlayerScore(); stage.setScene(winningScene); break; @@ -190,8 +191,8 @@ public class GameUI extends Application{ * */ private void updatePlayerScore(){ - scoreLabelX.setText("Player X: " + board.players[0].getPlayerScore()); - scoreLabelO.setText("Player O: " + board.players[1].getPlayerScore()); + scoreLabelX.setText("Player X: " + board.getPlayer(0).getPlayerScore()); + scoreLabelO.setText("Player O: " + board.getPlayer(1).getPlayerScore()); } /**