diff --git a/Chip.class b/Chip.class new file mode 100644 index 0000000..9099b76 Binary files /dev/null and b/Chip.class differ diff --git a/Chip.java b/Chip.java new file mode 100644 index 0000000..878ec49 --- /dev/null +++ b/Chip.java @@ -0,0 +1,47 @@ +import javafx.scene.paint.Color; +import javafx.scene.shape.Shape; +import javafx.scene.shape.Circle; +/** + * + * Beschreibung + * + * @version 1.0 vom 30.09.2025 + * @author + */ + +public class Chip { + + public Color color; + + public int relativeX; + public int relativeY; + + public double absoluteX; + public double absoluteY; + + public double radius; + + + public Circle circle; + + public Chip(relX,relY,absX,absY, Color color) { + relativeX = relX; + relativeY = relY; + + absoluteX = absX; + absoluteY = absY; + + this.color = color; + + radius = 20; + + this.color = color; + circle = new Circle(absoluteX, absoluteY, radius); + circle.setFill(this.color); + + } + public Shape getShape() { + return circle; + + } +} // end of Chip diff --git a/Chip.uml b/Chip.uml new file mode 100644 index 0000000..cdcab31 --- /dev/null +++ b/Chip.uml @@ -0,0 +1,24 @@ +[Files] +File0=Chip.java + +[Box: - Chip] +X=20 +Y=40 +MinVis=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 + +[Diagram] +Comments=0 +OffsetX=0 +OffsetY=0 +Visibility=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 +ShowConnections=0 +Fontname=Segoe UI +Fontsize=12 +ShowObjectDiagram=0 + diff --git a/Chip.~ava b/Chip.~ava new file mode 100644 index 0000000..c960522 --- /dev/null +++ b/Chip.~ava @@ -0,0 +1,45 @@ +import javafx.scene.paint.Color; +import javafx.scene.shape.Shape; +import javafx.scene.shape.Circle; +/** + * + * Beschreibung + * + * @version 1.0 vom 30.09.2025 + * @author + */ + +public class Chip { + + public Color color; + + public int relativeX; + public int relativeY; + + public double absoluteX; + public double absoluteY; + + public double radius; + + + public Circle circle; + + public Chip(relX,relY,absX,absY, Color color) { + relativeX = relX; + relativeY = relY; + + absoluteX = absX; + absoluteY = absY; + + this.color = color; + + radius = 20; + + circle = new Circle(absoluteX,absoluteY,radius); + + } + public Shape getShape() { + return circle; + + } +} // end of Chip diff --git a/Game.class b/Game.class new file mode 100644 index 0000000..e9f485a Binary files /dev/null and b/Game.class differ diff --git a/Game.java b/Game.java new file mode 100644 index 0000000..e9b3b2d --- /dev/null +++ b/Game.java @@ -0,0 +1,26 @@ +import javafx.scene.shape.Shape; +/** + * + * Beschreibung + * + * @version 1.0 vom 30.09.2025 + * @author + */ + +public class Game { + + public String currentTurnPlayer = "White"; + public int white_chips = 7; + public int black_chips = 7; + + public void addShape(Shape shape); + + public void start() { + + } + + public void chip_button_clicked(MuehleButton button) { + System.out.println(button.absoluteX); + } + +} \ No newline at end of file diff --git a/Game.uml b/Game.uml new file mode 100644 index 0000000..ee862a6 --- /dev/null +++ b/Game.uml @@ -0,0 +1,24 @@ +[Files] +File0=Game.java + +[Box: - Game] +X=20 +Y=40 +MinVis=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 + +[Diagram] +Comments=0 +OffsetX=0 +OffsetY=0 +Visibility=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 +ShowConnections=0 +Fontname=Segoe UI +Fontsize=12 +ShowObjectDiagram=0 + diff --git a/Game.~ava b/Game.~ava new file mode 100644 index 0000000..d373e68 --- /dev/null +++ b/Game.~ava @@ -0,0 +1,25 @@ +/** + * + * Beschreibung + * + * @version 1.0 vom 30.09.2025 + * @author + */ + +public class Game { + + public String currentTurnPlayer = "White"; + public int white_chips = 7; + public int black_chips = 7; + + public void addShape; + + public void start() { + + } + + public void chip_button_clicked(MuehleButton button) { + System.out.println(button.absoluteX); + } + +} \ No newline at end of file diff --git a/Muehle$1.class b/Muehle$1.class new file mode 100644 index 0000000..e2fb597 Binary files /dev/null and b/Muehle$1.class differ diff --git a/Muehle.class b/Muehle.class index f950644..1ac5c90 100644 Binary files a/Muehle.class and b/Muehle.class differ diff --git a/Muehle.java b/Muehle.java index 030a9f0..1e2adcd 100644 --- a/Muehle.java +++ b/Muehle.java @@ -8,7 +8,10 @@ import javafx.stage.Window; import javafx.scene.shape.Shape; import java.util.ArrayList; import javafx.scene.control.Label; - +import javafx.scene.shape.Line; +import javafx.event.Event; +import javafx.event.EventHandler; +import javafx.scene.input.MouseEvent; /** * * Beschreibung @@ -21,15 +24,24 @@ public class Muehle extends Application { // start attributes // end attributes private Label lTop = new Label(); + private Pane game_board; + private Game game; public void start(Stage primaryStage) { + + game = new Game(); + game.addShape = addShape; + game.start(); Pane root = new Pane(); - Pane game_board = draw_game_board(); + game_board = draw_game_board(); root.getChildren().addAll(lTop,game_board); Scene scene = new Scene(root, 1080, 820); + + //lTop.setAlignment(); setTopLabel("Test Label"); + primaryStage.setOnCloseRequest(e -> System.exit(0)); primaryStage.setTitle("Muehle"); @@ -80,6 +92,30 @@ public class Muehle extends Application { circle3.setFill(new Color(0.0,0.0,0.0,0.0)); shapes.add(circle3); + Line line1 = new Line((topLeftX+topRightX) /2 + topLeftX/2,topLeftY,(topLeftX+topRightX) /2 + topLeftX/2,250); + line1.setStroke(stroke_color); + line1.setStrokeWidth(10); + shapes.add(line1); + + Line line2 = new Line((topLeftX+topRightX) /2 + topLeftX/2,topRightY+50,(topLeftX+topRightX) /2 + topLeftX/2,520); + line2.setStroke(stroke_color); + line2.setStrokeWidth(10); + shapes.add(line2); + + Line line3 = new Line(topLeftX,topRightY/2+50,topLeftX+200,topRightY/2+50); + line3.setStroke(stroke_color); + line3.setStrokeWidth(10); + shapes.add(line3); + + Line line4 = new Line(topLeftX+550,topRightY/2+50,topLeftX+200+540,topRightY/2+50); + line4.setStroke(stroke_color); + line4.setStrokeWidth(10); + shapes.add(line4); + + + MuehleButton button1 = new MuehleButton(0,0,100,100,Color.BLUE,game); + shapes.add(button1.getShape()); + for (int i = 0; i < shapes.size() ;i++ ) { board.getChildren().add(shapes.get(i)); } // end of for @@ -88,6 +124,13 @@ public class Muehle extends Application { return board; } + + + public void addShape(Shape newShape) { + game_board.getChildren().add(newShape); + + } + // end methods } // end of class Muehle diff --git a/Muehle.~ava b/Muehle.~ava index e4a5a14..2fc464c 100644 --- a/Muehle.~ava +++ b/Muehle.~ava @@ -8,7 +8,10 @@ import javafx.stage.Window; import javafx.scene.shape.Shape; import java.util.ArrayList; import javafx.scene.control.Label; - +import javafx.scene.shape.Line; +import javafx.event.Event; +import javafx.event.EventHandler; +import javafx.scene.input.MouseEvent; /** * * Beschreibung @@ -21,15 +24,23 @@ public class Muehle extends Application { // start attributes // end attributes private Label lTop = new Label(); + private Pane game_board; + private Game game; public void start(Stage primaryStage) { + + game = new Game(); + game.start(); Pane root = new Pane(); - Pane game_board = draw_game_board(); + game_board = draw_game_board(); root.getChildren().addAll(lTop,game_board); Scene scene = new Scene(root, 1080, 820); + + //lTop.setAlignment(); setTopLabel("Test Label"); + primaryStage.setOnCloseRequest(e -> System.exit(0)); primaryStage.setTitle("Muehle"); @@ -74,12 +85,36 @@ public class Muehle extends Application { circle2.setFill(new Color(0.0,0.0,0.0,0.0)); shapes.add(circle2); - Rectangle circle3 = new Rectangle(topLeftX + 200,topLeftY + 200,topRightX - 500,topRightY - 500); + Rectangle circle3 = new Rectangle(topLeftX + 200,topLeftY + 200,topRightX - 400,topRightY - 400); circle3.setStroke(stroke_color); circle3.setStrokeWidth(10); circle3.setFill(new Color(0.0,0.0,0.0,0.0)); shapes.add(circle3); + Line line1 = new Line((topLeftX+topRightX) /2 + topLeftX/2,topLeftY,(topLeftX+topRightX) /2 + topLeftX/2,250); + line1.setStroke(stroke_color); + line1.setStrokeWidth(10); + shapes.add(line1); + + Line line2 = new Line((topLeftX+topRightX) /2 + topLeftX/2,topRightY+50,(topLeftX+topRightX) /2 + topLeftX/2,520); + line2.setStroke(stroke_color); + line2.setStrokeWidth(10); + shapes.add(line2); + + Line line3 = new Line(topLeftX,topRightY/2+50,topLeftX+200,topRightY/2+50); + line3.setStroke(stroke_color); + line3.setStrokeWidth(10); + shapes.add(line3); + + Line line4 = new Line(topLeftX+550,topRightY/2+50,topLeftX+200+540,topRightY/2+50); + line4.setStroke(stroke_color); + line4.setStrokeWidth(10); + shapes.add(line4); + + + MuehleButton button1 = new MuehleButton(0,0,100,100,Color.BLUE,game); + shapes.add(button1.getShape()); + for (int i = 0; i < shapes.size() ;i++ ) { board.getChildren().add(shapes.get(i)); } // end of for @@ -88,6 +123,13 @@ public class Muehle extends Application { return board; } + + + public void addShape(Shape newShape) { + game_board.getChildren().add(newShape); + + } + // end methods } // end of class Muehle diff --git a/MuehleButton$1.class b/MuehleButton$1.class new file mode 100644 index 0000000..19b239d Binary files /dev/null and b/MuehleButton$1.class differ diff --git a/MuehleButton.class b/MuehleButton.class new file mode 100644 index 0000000..47119e0 Binary files /dev/null and b/MuehleButton.class differ diff --git a/MuehleButton.java b/MuehleButton.java new file mode 100644 index 0000000..010db75 --- /dev/null +++ b/MuehleButton.java @@ -0,0 +1,57 @@ +import javafx.scene.paint.Color; +import javafx.scene.shape.Circle; +import javafx.scene.shape.Shape; +import javafx.event.Event; +import javafx.event.EventHandler; +import javafx.scene.input.MouseEvent; +public class MuehleButton { + + public Game game; + + public int relativeX; + public int relativeY; + + public double absoluteX; + public double absoluteY; + + public Color color; + + public double radius; + + public Circle circle; + + public MuehleButton(int relX, int relY, double absX, double absY, Color color, Game game) { + relativeX = relX; + relativeY = relY; + + absoluteX = absX; + absoluteY = absY; + + radius = 20; + this.color = color; + circle = new Circle(absoluteX, absoluteY, radius); + circle.setFill(this.color); + + this.game = game; + + circle.addEventHandler(MouseEvent.MOUSE_RELEASED, mouse_click_target); + } + + public Shape getShape() { + return circle; + + } + + EventHandler mouse_click_target = new EventHandler() { + public void handle(MouseEvent event) { + System.out.println("Button Clicked!"); + MouseClick(); + } + }; + + + public void MouseClick() { + game.chip_button_clicked(this); + } + +} // end of MuehleButton diff --git a/MuehleButton.uml b/MuehleButton.uml new file mode 100644 index 0000000..08d516e --- /dev/null +++ b/MuehleButton.uml @@ -0,0 +1,24 @@ +[Files] +File0=MuehleButton.java + +[Box: - MuehleButton] +X=20 +Y=40 +MinVis=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 + +[Diagram] +Comments=0 +OffsetX=0 +OffsetY=0 +Visibility=0 +ShowParameter=4 +SortOrder=0 +ShowIcons=1 +ShowConnections=0 +Fontname=Segoe UI +Fontsize=12 +ShowObjectDiagram=0 + diff --git a/MuehleButton.~ava b/MuehleButton.~ava new file mode 100644 index 0000000..1c050de --- /dev/null +++ b/MuehleButton.~ava @@ -0,0 +1,57 @@ +import javafx.scene.paint.Color; +import javafx.scene.shape.Circle; +import javafx.scene.shape.Shape; +import javafx.event.Event; +import javafx.event.EventHandler; +import javafx.scene.input.MouseEvent; +public class MuehleButton { + + public Game game; + + public int relativeX; + public int relativeY; + + public double absoluteX; + public double absoluteY; + + public Color color; + + public double radius; + + public Circle circle; + + public MuehleButton(int relX, int relY, double absX, double absY, Color color, Game game) { + relativeX = relX; + relativeY = relY; + + absoluteX = absX; + absoluteY = absY; + + radius = 20; + this.color = color; + circle = new Circle(absoluteX, absoluteY, radius); + circle.setFill(this.color); + + this.game = game; + + circle.addEventHandler(MouseEvent.MOUSE_RELEASED, mouse_click_target); + } + + public Shape getShape() { + return circle; + + } + + EventHandler mouse_click_target = new EventHandler() { + public void handle(MouseEvent event) { + System.out.println("Button Clicked!"); + MouseClick(); + } + }; + + + public void MouseClick() { + game.chip_button_clicked(this); + } + +} // end of MuehleButton