diff --git a/Game.java b/Game.java deleted file mode 100644 index 49864f6..0000000 --- a/Game.java +++ /dev/null @@ -1,316 +0,0 @@ -import javafx.scene.shape.Shape; -import java.util.ArrayList; -import javafx.scene.layout.Pane; -import javafx.scene.paint.Color; -import javafx.scene.control.Label; -import javafx.scene.shape.Circle; - -/** - * - * Beschreibung - * - * @version 1.0 vom 30.09.2025 - * @author - */ - -public class Game { - - public int[][] win_comb = {{0,3,6},{9,4,12} - ,{18,5,21},{1,10,19},{22,13,7},{20,15,23},{11,16,14},{2,17,8} - ,{0,1,2},{9,10,11},{18,19,20},{3,4,5},{12,13,14},{6,7,8},{21,22,23},{15,16,17} - }; - public int[][] close_chips = {{1,3},{0,2,10},{1,17},{0,6},{3,5,9,12},{18,21} - ,{3,7},{6,8},{7,17},{4,10},{9,11,19,1},{10,16},{4,13},{7,12,14,22},{13,16} - ,{20,23},{15,17,11,14},{2,16,8},{3,19},{18,20,10},{19,15},{5,22},{21,13,23} - ,{22,15} - }; - public String currentTurnPlayer = "White"; - public int game_state = 0; // 0 == players placing their chips; 1 = players moving their chips; 2,3 = player can remove chip - public int white_chips = 4; - public int black_chips = 4; - - public int white_combos = 0; - public int black_combos = 0; - - public ArrayList buttons = new ArrayList(); - public ArrayList chips = new ArrayList(); - public Pane game_board; - public Chip current_selection; - - public Label LTop; - - public Circle[] white_player_chips = new Circle[9]; - public Circle[] black_player_chips = new Circle[9]; - - - public void start(Pane gameBoard, Label label) { - game_board = gameBoard; - LTop = label; - - setLabelText("White Turn"); - } - - public void chip_button_clicked(MuehleButton button) { - System.out.println("id" + button.id); - if (game_state == 0) { - Chip newChip; - if (currentTurnPlayer == "White") { - newChip = addChip(button.id,button.relativeX,button.relativeY,button.absoluteX,button.absoluteY,Color.WHITE); - white_chips--; - setChipCount(white_chips,"White"); - - } - else { - newChip = addChip(button.id,button.relativeX,button.relativeY,button.absoluteX,button.absoluteY,Color.BLACK); - black_chips--; - setChipCount(white_chips,"Black"); - } - checkCombo(newChip); - removeChipTurn(); - game_board.getChildren().remove(button); - - } - if(game_state == 1) { - // second state of game - if(current_selection != null) { - moveChip(current_selection, button); - - - } - //setLabelText("Second State"); - } - - } - public void moveChip(Chip chip,MuehleButton target) { - Chip newChip = new Chip(target.id,0,0,target.absoluteX,target.absoluteY,chip.color,chip.game); - MuehleButton newButton = new MuehleButton(chip.id,0,0,chip.absoluteX, chip.absoluteY,chip.game); - - buttons.add(newButton); - chips.add(newChip); - - addShape(newButton.getShape()); - addShape(newChip.getShape()); - - buttons.remove(target); - chips.remove(chip); - game_board.getChildren().remove(target.getShape()); - game_board.getChildren().remove(chip.getShape()); - - checkCombo(newChip); - removeChipTurn(); - } - public Chip addChip(int id,int relX, int relY,double absX, double absY, Color color) { - Chip chip = new Chip(id,relX,relY,absX,absY,color,this); - chips.add(chip); - addShape(chip.getShape()); - return chip; - } - public void removeChip(Chip chip) { - MuehleButton newButton = new MuehleButton(chip.id,0,0,chip.absoluteX,chip.absoluteY,chip.game); - buttons.add(newButton); - game_board.getChildren().add(newButton.getShape()); - - chips.remove(chip); - game_board.getChildren().remove(chip.getShape()); - } - public void addShape(Shape newShape) { - game_board.getChildren().add(newShape); - - } - public void chip_clicked(Chip chip) { - - if(game_state == 2 && chip.color == Color.BLACK) { - removeChip(chip); - white_combos--; - removeChipTurn(); - - } - else if (game_state == 3 && chip.color == Color.WHITE) { - removeChip(chip); - black_combos--; - removeChipTurn(); - } - - if (game_state == 1) { - if(currentTurnPlayer == "White" && chip.color == Color.WHITE) { - if(current_selection == null) { - current_selection = chip; - drawAvaibleButtons(current_selection); - } - else { - current_selection = chip; - hideAllButtons(); - drawAvaibleButtons(current_selection); - } // end of if-else - } - else if (currentTurnPlayer == "Black" && chip.color == Color.BLACK){ - if(current_selection == null) { - current_selection = chip; - drawAvaibleButtons(current_selection); - } - else { - current_selection = chip; - hideAllButtons(); - drawAvaibleButtons(current_selection); - } - } // end of if-else - - } - - } - public void hideAllButtons() { - for (int i = 0; i < buttons.size(); i++) { - buttons.get(i).setActive(false); - } - } - public void drawAvaibleButtons(Chip chip) { - ArrayList avaible_buttons = new ArrayList(); - for (int i = 0; i < close_chips[chip.id].length ;i++ ) { - if (!isItTaken(close_chips[chip.id][i])) { - avaible_buttons.add(getButtonById(close_chips[chip.id][i])); - } // end of if - - } // end of for - if(avaible_buttons.size() > 0) { - for (int i = 0; i < avaible_buttons.size(); i++) { - avaible_buttons.get(i).setActive(true); - } // end of for - } - - - } - - public void removeChipTurn() { - if (white_combos > 0 || black_combos > 0) { - if (white_combos > 0) { - setLabelText("White, You can remove "+ white_combos + " Black Pieces"); - game_state = 2; - - } - if (black_combos > 0) { - setLabelText("Black, You can remove "+ black_combos + " White Pieces"); - game_state = 3; - } - - } - else { - nextTurn(); - } // end of if-else - } - public void nextTurn() { - - if (white_chips == 0 && black_chips == 0) { - game_state = 1; - hideAllButtons(); - if (current_selection != null) { - current_selection = null; - } // end of if - } - else { - game_state = 0; - } - - if (currentTurnPlayer == "White") { - setLabelText("Black Turn"); - currentTurnPlayer = "Black"; - } - else { - currentTurnPlayer = "White"; - setLabelText("White Turn"); - } // end of if-else - } - - - public void setLabelText(String value) { - LTop.setText(value); - } - public void checkCombo(Chip chip) { - checkCombo(chip.id); - } - public void checkCombo(int id) { - for (int i = 0; i < win_comb.length ;i++ ) { - for (int j = 0; j < win_comb[i].length; j++) { - if (win_comb[i][j] == id) { - Chip[] chips_to_check = {getChipById(win_comb[i][0]),getChipById(win_comb[i][1]),getChipById(win_comb[i][2])}; - //System.out.println("ID: " +id + " 0:"+win_comb[i][0]+" 1:"+win_comb[i][1]+" 2:"+win_comb[i][2]); - if (checkChipsColor(chips_to_check)) { - if (getChipById(id).color == Color.WHITE) { - white_combos++; - } - else { - black_combos++; - } // end of if-else - } // end of if - } - } - } - - } - public boolean checkChipsColor(Chip[] chips) { - if (chips[0] != null && chips[1] != null && chips[2] != null) { - if (chips[0].color == chips[1].color && chips[0].color == chips[2].color) { - return true; - } - else { - - return false; - } - } - else { - return false; - } // end of if-else - } - - public Chip getChipById(int id) { - for (int i = 0; i < chips.size(); i++) { - if (chips.get(i).id == id) { - return chips.get(i); - } // end of if - } // end of for - return null; - } - public MuehleButton getButtonById(int id) { - for (int i = 0; i < buttons.size(); i++) { - if (buttons.get(i).id == id) { - return buttons.get(i); - } // end of if - } // end of for - return null; - } - public boolean isItTaken(int id) { - for (int i = 0; i < chips.size(); i++) { - if (chips.get(i).id == id) { - return true; - } // end of if - } // end of for - return false; - } - - public void setChipCount(int value, String player) { - System.out.println(white_chips-1); - if (player == "White") { - if (white_chips == 0) { - for (int i = 0; i < white_player_chips.length -1; i++) { - white_player_chips[i].setVisible(false); - } - } - for (int i = white_player_chips.length-1; i >= value; i--) { - white_player_chips[i].setVisible(false); - } - - } - else { - { - if (white_chips == 0) { - for (int i = 0; i < black_player_chips.length -1; i++) { - black_player_chips[i].setVisible(false); - } // end of for - } // end of if - for (int i = black_player_chips.length-1; i >= value; i--) { - black_player_chips[i].setVisible(false); - } - - } - } // end of if-else - } -} \ No newline at end of file