diff --git a/.gitignore b/.gitignore index 9d80d85943aae8cee69606d2d5c3423fe19e06bd..96d545b0d571e47eb28482b8851d26045aeec5f5 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,4 @@ .classpath .idea/ *.mv.db -*.trace.db +*.trace.db \ No newline at end of file diff --git a/build-and-run.sh b/build-and-run.sh index 8e974fb1caac5798fcba1c03578d98bf16b5131f..d6636b6c3e6a81989765235ece3f914292886d4c 100755 --- a/build-and-run.sh +++ b/build-and-run.sh @@ -1,12 +1,4 @@ #!/bin/bash -cd java2-lab02-common-v2 -mvn clean install -cd ../java2-lab02-db-v2 -mvn clean install -cd ../java2-lab02-file-v2 -mvn clean install -cd ../java2-lab02-v2 mvn clean package -java --module-path target/java2-lab02-v2-0.0.1-SNAPHOST.jar:target/libs -m cz.vsb.fei.java2.lab02_module/lab.gui.App -cd .. +java --module-path target/java2-lab03-v2-0.0.1-SNAPHOST.jar:target/libs -m cz.vsb.fei.java2.lab03_module/lab.gui.App diff --git a/java2-lab02-common-v2/.gitignore b/java2-lab02-common-v2/.gitignore deleted file mode 100644 index 98b99a551e28559528e090cbfc676dcff9bd7def..0000000000000000000000000000000000000000 --- a/java2-lab02-common-v2/.gitignore +++ /dev/null @@ -1,16 +0,0 @@ -# Eclipse -.classpath -.project -.settings/ - -# Intellij -.idea/ -*.iml -*.iws - -# Mac -.DS_Store - -# Maven -log/ -target/ diff --git a/java2-lab02-common-v2/pom.xml b/java2-lab02-common-v2/pom.xml deleted file mode 100644 index 291effa68b4c599a8b13d68bf9159e2a4092085d..0000000000000000000000000000000000000000 --- a/java2-lab02-common-v2/pom.xml +++ /dev/null @@ -1,79 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>cz.vsb.fei.java2</groupId> - <artifactId>java2-lab02-common-v2</artifactId> - <version>0.0.1-SNAPSHOT</version> - - <name>java2-lab02-common-v2</name> - - <packaging>jar</packaging> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.release>21</maven.compiler.release> - <JUnit.version>5.11.0</JUnit.version> - <log4j.version>2.23.1</log4j.version> - <lombok.version>1.18.34</lombok.version> - </properties> - <dependencyManagement> - <dependencies> - <dependency> - <groupId>org.junit</groupId> - <artifactId>junit-bom</artifactId> - <version>${JUnit.version}</version> - <type>pom</type> - <scope>import</scope> - </dependency> - </dependencies> - </dependencyManagement> - - <dependencies> - <dependency> - <groupId>org.junit.jupiter</groupId> - <artifactId>junit-jupiter</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <version>${log4j.version}</version> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <version>${log4j.version}</version> - </dependency> - <dependency> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - <version>${lombok.version}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.13.0</version> - <configuration> - <annotationProcessorPaths> - <path> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - <version>${lombok.version}</version> - </path> - </annotationProcessorPaths> - </configuration> - </plugin> - <plugin> - <artifactId>maven-surefire-plugin</artifactId> - <version>3.5.0</version> - </plugin> - </plugins> - </build> - -</project> diff --git a/java2-lab02-common-v2/src/main/java/module-info.java b/java2-lab02-common-v2/src/main/java/module-info.java deleted file mode 100644 index e9edf40111700e7315c7992a3c5f0eee930fb438..0000000000000000000000000000000000000000 --- a/java2-lab02-common-v2/src/main/java/module-info.java +++ /dev/null @@ -1,5 +0,0 @@ -module cz.vsb.fei.java2.lab02.common_module { - requires static lombok; - requires org.apache.logging.log4j; - exports cz.vsb.fei.java2.lab02.common; -} \ No newline at end of file diff --git a/java2-lab02-common-v2/src/test/java/cz/vsb/fei/java2/lab01/AppTest.java b/java2-lab02-common-v2/src/test/java/cz/vsb/fei/java2/lab01/AppTest.java deleted file mode 100644 index 9102a3af357bbfe62c176afc996a511c63fde18c..0000000000000000000000000000000000000000 --- a/java2-lab02-common-v2/src/test/java/cz/vsb/fei/java2/lab01/AppTest.java +++ /dev/null @@ -1,19 +0,0 @@ -package cz.vsb.fei.java2.lab01; - -import static org.junit.jupiter.api.Assertions.assertTrue; - -import org.junit.jupiter.api.Test; - -/** - * Unit test for simple App. - */ -class AppTest { - - /** - * Rigorous Test :-) - */ - @Test - void shouldAnswerWithTrue() { - assertTrue(true); - } -} diff --git a/java2-lab02-db-v2/.gitignore b/java2-lab02-db-v2/.gitignore deleted file mode 100644 index 98b99a551e28559528e090cbfc676dcff9bd7def..0000000000000000000000000000000000000000 --- a/java2-lab02-db-v2/.gitignore +++ /dev/null @@ -1,16 +0,0 @@ -# Eclipse -.classpath -.project -.settings/ - -# Intellij -.idea/ -*.iml -*.iws - -# Mac -.DS_Store - -# Maven -log/ -target/ diff --git a/java2-lab02-db-v2/pom.xml b/java2-lab02-db-v2/pom.xml deleted file mode 100644 index a706302a19af5488fe654f6697dd959b85873bde..0000000000000000000000000000000000000000 --- a/java2-lab02-db-v2/pom.xml +++ /dev/null @@ -1,90 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>cz.vsb.fei.java2</groupId> - <artifactId>java2-lab02-db-v2</artifactId> - <version>0.0.1-SNAPSHOT</version> - - <name>java2-lab02-db-v2</name> - - <packaging>jar</packaging> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.release>21</maven.compiler.release> - <JUnit.version>5.11.0</JUnit.version> - <log4j.version>2.23.1</log4j.version> - <lombok.version>1.18.34</lombok.version> - </properties> - <dependencyManagement> - <dependencies> - <dependency> - <groupId>org.junit</groupId> - <artifactId>junit-bom</artifactId> - <version>${JUnit.version}</version> - <type>pom</type> - <scope>import</scope> - </dependency> - </dependencies> - </dependencyManagement> - - <dependencies> - <dependency> - <groupId>cz.vsb.fei.java2</groupId> - <artifactId>java2-lab02-common-v2</artifactId> - <version>0.0.1-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>com.h2database</groupId> - <artifactId>h2</artifactId> - <version>2.3.232</version> - </dependency> - - <dependency> - <groupId>org.junit.jupiter</groupId> - <artifactId>junit-jupiter</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <version>${log4j.version}</version> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <version>${log4j.version}</version> - </dependency> - <dependency> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - <version>${lombok.version}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.13.0</version> - <configuration> - <annotationProcessorPaths> - <path> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - <version>${lombok.version}</version> - </path> - </annotationProcessorPaths> - </configuration> - </plugin> - <plugin> - <artifactId>maven-surefire-plugin</artifactId> - <version>3.5.0</version> - </plugin> - </plugins> - </build> - -</project> diff --git a/java2-lab02-db-v2/src/main/java/module-info.java b/java2-lab02-db-v2/src/main/java/module-info.java deleted file mode 100644 index b10ea8f1684ce4bf06a27bf5cb036b4515a18ee8..0000000000000000000000000000000000000000 --- a/java2-lab02-db-v2/src/main/java/module-info.java +++ /dev/null @@ -1,11 +0,0 @@ -import cz.vsb.fei.java2.lab02.common.ScoreStorageInterface; -import cz.vsb.fei.java2.lab02.db.DbConnector; - -module cz.vsb.fei.java2.lab02.db_module { - requires static lombok; - requires org.apache.logging.log4j; - requires transitive cz.vsb.fei.java2.lab02.common_module; - requires java.sql; - exports cz.vsb.fei.java2.lab02.db; - provides ScoreStorageInterface with cz.vsb.fei.java2.lab02.db.DbConnector; -} \ No newline at end of file diff --git a/java2-lab02-db-v2/src/main/resources/log4j2.xml b/java2-lab02-db-v2/src/main/resources/log4j2.xml deleted file mode 100644 index acb3514078f6fb73f4f09ffd7a172b47f184e961..0000000000000000000000000000000000000000 --- a/java2-lab02-db-v2/src/main/resources/log4j2.xml +++ /dev/null @@ -1,13 +0,0 @@ -<Configuration> - <Appenders> - <Console name="Console"> - <PatternLayout - pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> - </Console> - </Appenders> - <Loggers> - <Root level="info"> - <AppenderRef ref="Console"></AppenderRef> - </Root> - </Loggers> -</Configuration> diff --git a/java2-lab02-file-v2/.gitignore b/java2-lab02-file-v2/.gitignore deleted file mode 100644 index 98b99a551e28559528e090cbfc676dcff9bd7def..0000000000000000000000000000000000000000 --- a/java2-lab02-file-v2/.gitignore +++ /dev/null @@ -1,16 +0,0 @@ -# Eclipse -.classpath -.project -.settings/ - -# Intellij -.idea/ -*.iml -*.iws - -# Mac -.DS_Store - -# Maven -log/ -target/ diff --git a/java2-lab02-file-v2/pom.xml b/java2-lab02-file-v2/pom.xml deleted file mode 100644 index 72f41c7403fec34109af5ef3d4b34ff85b8b7bed..0000000000000000000000000000000000000000 --- a/java2-lab02-file-v2/pom.xml +++ /dev/null @@ -1,84 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>cz.vsb.fei.java2</groupId> - <artifactId>java2-lab02-file-v2</artifactId> - <version>1.0-SNAPSHOT</version> - - <name>java2-lab02-file-v2</name> - - <packaging>jar</packaging> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.release>21</maven.compiler.release> - <JUnit.version>5.11.0</JUnit.version> - <log4j.version>2.23.1</log4j.version> - <lombok.version>1.18.34</lombok.version> - </properties> - <dependencyManagement> - <dependencies> - <dependency> - <groupId>org.junit</groupId> - <artifactId>junit-bom</artifactId> - <version>${JUnit.version}</version> - <type>pom</type> - <scope>import</scope> - </dependency> - </dependencies> - </dependencyManagement> - - <dependencies> - <dependency> - <groupId>cz.vsb.fei.java2</groupId> - <artifactId>java2-lab02-common-v2</artifactId> - <version>0.0.1-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.junit.jupiter</groupId> - <artifactId>junit-jupiter</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <version>${log4j.version}</version> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <version>${log4j.version}</version> - </dependency> - <dependency> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - <version>${lombok.version}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.13.0</version> - <configuration> - <annotationProcessorPaths> - <path> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - <version>${lombok.version}</version> - </path> - </annotationProcessorPaths> - </configuration> - </plugin> - <plugin> - <artifactId>maven-surefire-plugin</artifactId> - <version>3.5.0</version> - </plugin> - </plugins> - </build> - -</project> diff --git a/java2-lab02-file-v2/src/main/java/module-info.java b/java2-lab02-file-v2/src/main/java/module-info.java deleted file mode 100644 index cff2f09f3af4cba1cb0d9b11015f44f32c3a0f8a..0000000000000000000000000000000000000000 --- a/java2-lab02-file-v2/src/main/java/module-info.java +++ /dev/null @@ -1,9 +0,0 @@ -import cz.vsb.fei.java2.lab02.common.ScoreStorageInterface; - -module cz.vsb.fei.file_module { - requires static lombok; - requires org.apache.logging.log4j; - requires transitive cz.vsb.fei.java2.lab02.common_module; - exports cz.vsb.fei.file; - provides ScoreStorageInterface with cz.vsb.fei.file.FileStorage; -} \ No newline at end of file diff --git a/java2-lab02-v2/.gitignore b/java2-lab02-v2/.gitignore deleted file mode 100644 index b83d22266ac8aa2f8df2edef68082c789727841d..0000000000000000000000000000000000000000 --- a/java2-lab02-v2/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target/ diff --git a/java2-lab02-v2/scores.csv b/java2-lab02-v2/scores.csv deleted file mode 100644 index 59e2fa85512ceada42ddd4897b21951dff9d66a8..0000000000000000000000000000000000000000 --- a/java2-lab02-v2/scores.csv +++ /dev/null @@ -1,3 +0,0 @@ -ScreenSage;256 -EmojiEnthusiast;183 -EmojiEnthusiast;163 diff --git a/java2-lab02-v2/src/main/java/lab/ScoreStorageFactory.java b/java2-lab02-v2/src/main/java/lab/ScoreStorageFactory.java deleted file mode 100644 index b613d07f62f9d822b12b7f943d596e6e0adfee2f..0000000000000000000000000000000000000000 --- a/java2-lab02-v2/src/main/java/lab/ScoreStorageFactory.java +++ /dev/null @@ -1,39 +0,0 @@ -package lab; - -import java.util.ArrayList; -import java.util.List; -import java.util.NoSuchElementException; -import java.util.Random; -import java.util.ServiceLoader; - -import cz.vsb.fei.java2.lab02.common.ScoreStorageInterface; -import javafx.scene.control.Alert; -import javafx.scene.control.ButtonType; -import javafx.stage.Modality; -import javafx.scene.control.Alert.AlertType; - -public class ScoreStorageFactory { - - private static ScoreStorageInterface instance; - - private ScoreStorageFactory() { - /* hide public one constructor */ - } - - public static ScoreStorageInterface getInstance() { - if (instance == null) { - List<ScoreStorageInterface> availableImplementations = new ArrayList<>(); - ServiceLoader.load(ScoreStorageInterface.class).forEach(availableImplementations::add); - if (availableImplementations.isEmpty()) { - throw new NoSuchElementException( - "Service loader did not find any implementation of interface ScoreStorageInterface."); - } - instance = availableImplementations.get(new Random().nextInt(availableImplementations.size())); - Alert info = new Alert(AlertType.INFORMATION, - String.format("Storage %s selected.", instance.getClass().getName()), ButtonType.OK); - info.initModality(Modality.WINDOW_MODAL); - info.showAndWait(); - } - return instance; - } -} diff --git a/java2-lab02-v2/src/main/java/module-info.java b/java2-lab02-v2/src/main/java/module-info.java deleted file mode 100644 index c24119824ad7b5cf98e7c098746fcbe2e77fdebb..0000000000000000000000000000000000000000 --- a/java2-lab02-v2/src/main/java/module-info.java +++ /dev/null @@ -1,12 +0,0 @@ -import cz.vsb.fei.java2.lab02.common.ScoreStorageInterface; - -module cz.vsb.fei.java2.lab02_module { - requires transitive javafx.controls; - requires javafx.fxml; - requires javafx.base; - requires java.sql; - requires cz.vsb.fei.java2.lab02.common_module; - opens lab.gui to javafx.fxml; - exports lab.gui to javafx.fxml,javafx.graphics; - uses ScoreStorageInterface; -} \ No newline at end of file diff --git a/java2-lab02-v2/pom.xml b/pom.xml similarity index 89% rename from java2-lab02-v2/pom.xml rename to pom.xml index 302abdbb8f0c8655ddd867c1d1d8d81e23b304d7..3b70e3bf97e5e7b41a783fe9f0c3e2d8ea4e5566 100644 --- a/java2-lab02-v2/pom.xml +++ b/pom.xml @@ -3,9 +3,9 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cz.vsb.fei.java2</groupId> - <artifactId>java2-lab02-v2</artifactId> + <artifactId>java2-lab03-v2</artifactId> <version>0.0.1-SNAPHOST</version> - <name>java2-lab02-v2</name> + <name>java2-lab03-v2</name> <packaging>jar</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> @@ -13,6 +13,13 @@ <maven.compiler.target>21</maven.compiler.target> </properties> <dependencies> + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <version>2.3.232</version> + <scope>runtime</scope> + </dependency> + <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-controls</artifactId> @@ -60,21 +67,6 @@ <version>3.0</version> <scope>test</scope> </dependency> - <dependency> - <groupId>cz.vsb.fei.java2</groupId> - <artifactId>java2-lab02-common-v2</artifactId> - <version>0.0.1-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>cz.vsb.fei.java2</groupId> - <artifactId>java2-lab02-db-v2</artifactId> - <version>0.0.1-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>cz.vsb.fei.java2</groupId> - <artifactId>java2-lab02-file-v2</artifactId> - <version>1.0-SNAPSHOT</version> - </dependency> </dependencies> <build> <plugins> diff --git a/run.sh b/run.sh index 774747d5ec40289617f5f9f29b4f554267142c8e..05217e87a6516d99f621860c11a71e07c5a64a0c 100755 --- a/run.sh +++ b/run.sh @@ -1,5 +1,4 @@ #!/bin/bash -cd java2-lab02-v2 -java --module-path target/java2-lab02-v2-0.0.1-SNAPHOST.jar:target/libs -m cz.vsb.fei.java2.lab02_module/lab.gui.App +java --module-path target/java2-lab03-v2-0.0.1-SNAPHOST.jar:target/libs -m cz.vsb.fei.java2.lab03_module/lab.gui.App cd .. diff --git a/src/main/java/lab/Config.java b/src/main/java/lab/Config.java new file mode 100644 index 0000000000000000000000000000000000000000..f1aa8b7ed2cddc6e289c700673f4e05e005a8d25 --- /dev/null +++ b/src/main/java/lab/Config.java @@ -0,0 +1,60 @@ +package lab; + +import lab.storage.DbConnector; +import lab.storage.ScoreStorageInterface; + +public class Config { + + private static Config instance; + + private ScoreStorageInterface scoreStorageInterface = new DbConnector(); + private double monsterMinXPopsition = 0.5; + private double monsterMinSpeed = 50; + private double monsterMaxSpeed = 150; + private double obstacleWidth = 30; + private double obstacleHeight = 20; + private double playerStartSpeed= 50; + private int monsterMultiplier= 1; + + public static void configure(Config setting) { + instance = setting; + } + + public static Config getInstance() { + return instance; + } + + public ScoreStorageInterface getScoreStorageInterface() { + return scoreStorageInterface; + } + + public double getMonsterMinXPopsition() { + return monsterMinXPopsition; + } + + public double getMonsterMinSpeed() { + return monsterMinSpeed; + } + + public double getMonsterMaxSpeed() { + return monsterMaxSpeed; + } + + public double getObstacleHeight() { + return obstacleHeight; + } + + public double getObstacleWidth() { + return obstacleWidth; + } + + public double getPlayerStartSpeed() { + return playerStartSpeed; + } + + public int getMonsterMultiplier() { + return monsterMultiplier; + } + + +} diff --git a/java2-lab02-common-v2/src/main/java/cz/vsb/fei/java2/lab02/common/Score.java b/src/main/java/lab/data/Score.java similarity index 98% rename from java2-lab02-common-v2/src/main/java/cz/vsb/fei/java2/lab02/common/Score.java rename to src/main/java/lab/data/Score.java index cb962bdf72e3ae81b92bd0e20bd87ff74d9be3f5..01dc746bf946fa4492b77a46a8f80fb85d50d655 100644 --- a/java2-lab02-common-v2/src/main/java/cz/vsb/fei/java2/lab02/common/Score.java +++ b/src/main/java/lab/data/Score.java @@ -1,4 +1,4 @@ -package cz.vsb.fei.java2.lab02.common; +package lab.data; import java.util.Random; diff --git a/java2-lab02-v2/src/main/java/lab/game/Collisionable.java b/src/main/java/lab/game/Collisionable.java similarity index 100% rename from java2-lab02-v2/src/main/java/lab/game/Collisionable.java rename to src/main/java/lab/game/Collisionable.java diff --git a/java2-lab02-v2/src/main/java/lab/game/DeadListener.java b/src/main/java/lab/game/DeadListener.java similarity index 100% rename from java2-lab02-v2/src/main/java/lab/game/DeadListener.java rename to src/main/java/lab/game/DeadListener.java diff --git a/java2-lab02-v2/src/main/java/lab/game/Difficult.java b/src/main/java/lab/game/Difficult.java similarity index 100% rename from java2-lab02-v2/src/main/java/lab/game/Difficult.java rename to src/main/java/lab/game/Difficult.java diff --git a/java2-lab02-v2/src/main/java/lab/game/DrawableSimulable.java b/src/main/java/lab/game/DrawableSimulable.java similarity index 100% rename from java2-lab02-v2/src/main/java/lab/game/DrawableSimulable.java rename to src/main/java/lab/game/DrawableSimulable.java diff --git a/java2-lab02-v2/src/main/java/lab/game/DrawingThread.java b/src/main/java/lab/game/DrawingThread.java similarity index 100% rename from java2-lab02-v2/src/main/java/lab/game/DrawingThread.java rename to src/main/java/lab/game/DrawingThread.java diff --git a/java2-lab02-v2/src/main/java/lab/game/Level.java b/src/main/java/lab/game/Level.java similarity index 95% rename from java2-lab02-v2/src/main/java/lab/game/Level.java rename to src/main/java/lab/game/Level.java index ecc6ec43b7fb80c128f4e0c631766a9c09a75fd9..7b6a9221a52627d44ef73194a4765090dbf93d9b 100644 --- a/java2-lab02-v2/src/main/java/lab/game/Level.java +++ b/src/main/java/lab/game/Level.java @@ -8,6 +8,7 @@ import javafx.geometry.Dimension2D; import javafx.geometry.Point2D; import javafx.scene.canvas.GraphicsContext; import javafx.scene.paint.Color; +import lab.Config; public class Level { @@ -27,7 +28,7 @@ public class Level { entities.add(new Obstacle(this, new Point2D(300, 200), new Dimension2D(80, 40))); entities.add(new Obstacle(this)); entities.add(player); - for (int i = 0; i < monsterCount; i++) { + for (int i = 0; i < monsterCount*Config.getInstance().getMonsterMultiplier(); i++) { entities.add(new Monster(this)); } } diff --git a/java2-lab02-v2/src/main/java/lab/game/Monster.java b/src/main/java/lab/game/Monster.java similarity index 81% rename from java2-lab02-v2/src/main/java/lab/game/Monster.java rename to src/main/java/lab/game/Monster.java index 666e4ce7a25d58a9cd788d5ec5a9239b125b49cf..0bca7df5dc2ea193fbd2e4ce6c286dd4371745d2 100644 --- a/java2-lab02-v2/src/main/java/lab/game/Monster.java +++ b/src/main/java/lab/game/Monster.java @@ -9,6 +9,7 @@ import javafx.geometry.Point2D; import javafx.geometry.Rectangle2D; import javafx.scene.canvas.GraphicsContext; import javafx.scene.image.Image; +import lab.Config; public class Monster extends WorldEntity implements Collisionable { @@ -21,9 +22,12 @@ public class Monster extends WorldEntity implements Collisionable { public Monster(Level level) { super(level, new Point2D(0, 0), 100); image = new Image(getClass().getResourceAsStream("red-monster.gif")); - position = new Point2D(level.getWidth() * 0.5 + RANDOM.nextDouble(level.getWidth() * 0.5 - image.getWidth()), + position = new Point2D( + level.getWidth() * Config.getInstance().getMonsterMinXPopsition() + RANDOM.nextDouble( + level.getWidth() - image.getWidth()), RANDOM.nextDouble(level.getHeight())); - speed = new Point2D(0, RANDOM.nextDouble(50, 150)); + speed = new Point2D(0, RANDOM.nextDouble(Config.getInstance().getMonsterMinSpeed(), + Config.getInstance().getMonsterMaxSpeed())); } public Monster(Level level, Point2D position) { @@ -42,7 +46,7 @@ public class Monster extends WorldEntity implements Collisionable { public void simulate(double delay) { position = position.add(speed.multiply(delay / 1_000_000_000)); position = new Point2D(position.getX(), position.getY() % level.getHeight()); - if(position.getY() + image.getHeight() < 0) { + if (position.getY() + image.getHeight() < 0) { position = new Point2D(position.getX(), level.getHeight()); } } @@ -61,7 +65,8 @@ public class Monster extends WorldEntity implements Collisionable { public void hitBy(Collisionable another) { if (another instanceof Player) { level.remove(this); - level.add(new Obstacle(level, getPosition(), new Dimension2D(60, 30))); + level.add(new Obstacle(level, getPosition(), new Dimension2D(Config.getInstance().getObstacleWidth(), + Config.getInstance().getObstacleHeight()))); fireMonsterDead(); } diff --git a/java2-lab02-v2/src/main/java/lab/game/MujListener.java b/src/main/java/lab/game/MujListener.java similarity index 100% rename from java2-lab02-v2/src/main/java/lab/game/MujListener.java rename to src/main/java/lab/game/MujListener.java diff --git a/java2-lab02-v2/src/main/java/lab/game/NicerObstacle.java b/src/main/java/lab/game/NicerObstacle.java similarity index 100% rename from java2-lab02-v2/src/main/java/lab/game/NicerObstacle.java rename to src/main/java/lab/game/NicerObstacle.java diff --git a/java2-lab02-v2/src/main/java/lab/game/Obstacle.java b/src/main/java/lab/game/Obstacle.java similarity index 82% rename from java2-lab02-v2/src/main/java/lab/game/Obstacle.java rename to src/main/java/lab/game/Obstacle.java index 03e6ba6544fb27fda5d880800f91eef42cd95aec..c6232372aaeb0c04f4208da8510aa3ee31b50316 100644 --- a/java2-lab02-v2/src/main/java/lab/game/Obstacle.java +++ b/src/main/java/lab/game/Obstacle.java @@ -4,13 +4,15 @@ import javafx.geometry.Dimension2D; import javafx.geometry.Point2D; import javafx.scene.canvas.GraphicsContext; import javafx.scene.paint.Color; +import lab.Config; public class Obstacle extends WorldEntity { private Dimension2D size; public Obstacle(Level level) { - this(level, new Point2D(200, 100), new Dimension2D(30, 20)); + this(level, new Point2D(200, 100), + new Dimension2D(Config.getInstance().getObstacleWidth(), Config.getInstance().getObstacleHeight())); } public Obstacle(Level level, Point2D position, Dimension2D size) { diff --git a/java2-lab02-v2/src/main/java/lab/game/Player.java b/src/main/java/lab/game/Player.java similarity index 96% rename from java2-lab02-v2/src/main/java/lab/game/Player.java rename to src/main/java/lab/game/Player.java index 547e9568532223de4f380c79bbe9b90d9becb5e0..b37c79a3dcb8d2e0d297dbae4561f02fe4dc3327 100644 --- a/java2-lab02-v2/src/main/java/lab/game/Player.java +++ b/src/main/java/lab/game/Player.java @@ -8,11 +8,12 @@ import javafx.scene.canvas.GraphicsContext; import javafx.scene.paint.Color; import javafx.scene.transform.Affine; import javafx.scene.transform.Rotate; +import lab.Config; public class Player extends WorldEntity implements Collisionable { private static final Random RANDOM = new Random(); private Point2D speed; - private double speedSize = 50; + private double speedSize = Config.getInstance().getPlayerStartSpeed(); private double angle; public Player(Level level, Point2D position, Point2D speed) { diff --git a/java2-lab02-v2/src/main/java/lab/game/Routines.java b/src/main/java/lab/game/Routines.java similarity index 100% rename from java2-lab02-v2/src/main/java/lab/game/Routines.java rename to src/main/java/lab/game/Routines.java diff --git a/java2-lab02-v2/src/main/java/lab/game/WorldEntity.java b/src/main/java/lab/game/WorldEntity.java similarity index 100% rename from java2-lab02-v2/src/main/java/lab/game/WorldEntity.java rename to src/main/java/lab/game/WorldEntity.java diff --git a/java2-lab02-v2/src/main/java/lab/gui/App.java b/src/main/java/lab/gui/App.java similarity index 97% rename from java2-lab02-v2/src/main/java/lab/gui/App.java rename to src/main/java/lab/gui/App.java index fe54e7bfeb7cc1fb7d21f0292bf25e6934ffcb2b..62f014e6c0caa6ca94e616d6d5238085a0873ccc 100644 --- a/java2-lab02-v2/src/main/java/lab/gui/App.java +++ b/src/main/java/lab/gui/App.java @@ -9,6 +9,7 @@ import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; import javafx.stage.WindowEvent; +import lab.Config; /** * Class <b>App</b> - extends class Application and it is an entry point of the @@ -23,6 +24,7 @@ public class App extends Application { private Stage primaryStage; public static void main(String[] args) { + Config.configure(new Config()); launch(args); } diff --git a/java2-lab02-v2/src/main/java/lab/gui/GameController.java b/src/main/java/lab/gui/GameController.java similarity index 100% rename from java2-lab02-v2/src/main/java/lab/gui/GameController.java rename to src/main/java/lab/gui/GameController.java diff --git a/java2-lab02-v2/src/main/java/lab/gui/MainScreenController.java b/src/main/java/lab/gui/MainScreenController.java similarity index 84% rename from java2-lab02-v2/src/main/java/lab/gui/MainScreenController.java rename to src/main/java/lab/gui/MainScreenController.java index 59b028250b83a94b42b3be98cfc9d76111cf6ad3..f362c767533632f781c88477023fc1a136980cb1 100644 --- a/java2-lab02-v2/src/main/java/lab/gui/MainScreenController.java +++ b/src/main/java/lab/gui/MainScreenController.java @@ -3,7 +3,6 @@ package lab.gui; import java.io.IOException; import java.util.List; -import cz.vsb.fei.java2.lab02.common.Score; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.Button; @@ -13,7 +12,8 @@ import javafx.scene.control.TextField; import javafx.scene.control.ToggleButton; import javafx.scene.control.ToggleGroup; import javafx.scene.control.cell.PropertyValueFactory; -import lab.ScoreStorageFactory; +import lab.Config; +import lab.data.Score; import lab.game.Difficult; /** @@ -70,17 +70,17 @@ public class MainScreenController { void btnGenerateScoreAction(ActionEvent event) { Score score = Score.generate(); this.scores.getItems().add(score); - ScoreStorageFactory.getInstance().insertScore(score); + Config.getInstance().getScoreStorageInterface().insertScore(score); } @FXML void btnLoadAllAction(ActionEvent event) { - updateScoreTable(ScoreStorageFactory.getInstance().getAll()); + updateScoreTable(Config.getInstance().getScoreStorageInterface().getAll()); } @FXML void btnLoadFirstTenAction(ActionEvent event) { - updateScoreTable(ScoreStorageFactory.getInstance().getFirstTen()); + updateScoreTable(Config.getInstance().getScoreStorageInterface().getFirstTen()); } private void updateScoreTable(List<Score> scores) { @@ -103,9 +103,8 @@ public class MainScreenController { } private void initDB() { - //Stream.generate(Score::generate).limit(10).toList(); - ScoreStorageFactory.getInstance().init(); - scores.getItems().addAll(ScoreStorageFactory.getInstance().getAll()); + Config.getInstance().getScoreStorageInterface().init(); + scores.getItems().addAll(Config.getInstance().getScoreStorageInterface().getAll()); } } diff --git a/java2-lab02-db-v2/src/main/java/cz/vsb/fei/java2/lab02/db/DbConnector.java b/src/main/java/lab/storage/DbConnector.java similarity index 92% rename from java2-lab02-db-v2/src/main/java/cz/vsb/fei/java2/lab02/db/DbConnector.java rename to src/main/java/lab/storage/DbConnector.java index 4f8c076a132951c88211aa4b5739bab926841461..73cbefac399e59111cf39d0bb7271dc9423b5a1c 100644 --- a/java2-lab02-db-v2/src/main/java/cz/vsb/fei/java2/lab02/db/DbConnector.java +++ b/src/main/java/lab/storage/DbConnector.java @@ -1,4 +1,4 @@ -package cz.vsb.fei.java2.lab02.db; +package lab.storage; import java.sql.Connection; import java.sql.DriverManager; @@ -9,8 +9,8 @@ import java.sql.Statement; import java.util.ArrayList; import java.util.List; -import cz.vsb.fei.java2.lab02.common.Score; -import cz.vsb.fei.java2.lab02.common.ScoreStorageInterface; +import lab.data.Score; + public class DbConnector implements ScoreStorageInterface { diff --git a/java2-lab02-file-v2/src/main/java/cz/vsb/fei/file/FileStorage.java b/src/main/java/lab/storage/FileStorage.java similarity index 91% rename from java2-lab02-file-v2/src/main/java/cz/vsb/fei/file/FileStorage.java rename to src/main/java/lab/storage/FileStorage.java index 291811e791de17b965a9b609bfdbaaf53dad998e..a3228c16a88a3dccaaecda85b3b38a1eb916f46f 100644 --- a/java2-lab02-file-v2/src/main/java/cz/vsb/fei/file/FileStorage.java +++ b/src/main/java/lab/storage/FileStorage.java @@ -1,4 +1,4 @@ -package cz.vsb.fei.file; +package lab.storage; import java.io.IOException; import java.nio.file.Files; @@ -10,8 +10,7 @@ import java.util.Comparator; import java.util.List; import java.util.stream.Stream; -import cz.vsb.fei.java2.lab02.common.Score; -import cz.vsb.fei.java2.lab02.common.ScoreStorageInterface; +import lab.data.Score; public class FileStorage implements ScoreStorageInterface { diff --git a/java2-lab02-common-v2/src/main/java/cz/vsb/fei/java2/lab02/common/ScoreStorageInterface.java b/src/main/java/lab/storage/ScoreStorageInterface.java similarity index 78% rename from java2-lab02-common-v2/src/main/java/cz/vsb/fei/java2/lab02/common/ScoreStorageInterface.java rename to src/main/java/lab/storage/ScoreStorageInterface.java index deb19b3972a81ffa7a3dbc68a512ac96666c4f7c..67ee80d94e2662312f68642b923a0912aa5ae0fc 100644 --- a/java2-lab02-common-v2/src/main/java/cz/vsb/fei/java2/lab02/common/ScoreStorageInterface.java +++ b/src/main/java/lab/storage/ScoreStorageInterface.java @@ -1,7 +1,9 @@ -package cz.vsb.fei.java2.lab02.common; +package lab.storage; import java.util.List; +import lab.data.Score; + public interface ScoreStorageInterface { List<Score> getAll(); diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java new file mode 100644 index 0000000000000000000000000000000000000000..732cf186a66ae4af97c710524d7fa139e8247470 --- /dev/null +++ b/src/main/java/module-info.java @@ -0,0 +1,11 @@ +module cz.vsb.fei.java2.lab03_module { + requires transitive javafx.controls; + requires javafx.fxml; + requires javafx.base; + requires java.sql; + + opens lab.gui to javafx.fxml; + opens lab.data to javafx.base; + + exports lab.gui to javafx.fxml, javafx.graphics; +} \ No newline at end of file diff --git a/java2-lab02-v2/src/main/resources/lab/game/red-monster.gif b/src/main/resources/lab/game/red-monster.gif similarity index 100% rename from java2-lab02-v2/src/main/resources/lab/game/red-monster.gif rename to src/main/resources/lab/game/red-monster.gif diff --git a/java2-lab02-v2/src/main/resources/lab/game/spike.gif b/src/main/resources/lab/game/spike.gif similarity index 100% rename from java2-lab02-v2/src/main/resources/lab/game/spike.gif rename to src/main/resources/lab/game/spike.gif diff --git a/java2-lab02-v2/src/main/resources/lab/gui/application.css b/src/main/resources/lab/gui/application.css similarity index 100% rename from java2-lab02-v2/src/main/resources/lab/gui/application.css rename to src/main/resources/lab/gui/application.css diff --git a/java2-lab02-v2/src/main/resources/lab/gui/game-background.jpg b/src/main/resources/lab/gui/game-background.jpg similarity index 100% rename from java2-lab02-v2/src/main/resources/lab/gui/game-background.jpg rename to src/main/resources/lab/gui/game-background.jpg diff --git a/java2-lab02-v2/src/main/resources/lab/gui/gameWindow.fxml b/src/main/resources/lab/gui/gameWindow.fxml similarity index 100% rename from java2-lab02-v2/src/main/resources/lab/gui/gameWindow.fxml rename to src/main/resources/lab/gui/gameWindow.fxml diff --git a/java2-lab02-v2/src/main/resources/lab/gui/mainScreen.fxml b/src/main/resources/lab/gui/mainScreen.fxml similarity index 100% rename from java2-lab02-v2/src/main/resources/lab/gui/mainScreen.fxml rename to src/main/resources/lab/gui/mainScreen.fxml diff --git a/java2-lab02-v2/src/main/resources/lab/gui/red-monster-menu-background.jpg b/src/main/resources/lab/gui/red-monster-menu-background.jpg similarity index 100% rename from java2-lab02-v2/src/main/resources/lab/gui/red-monster-menu-background.jpg rename to src/main/resources/lab/gui/red-monster-menu-background.jpg diff --git a/java2-lab02-v2/src/test/java/jez04/structure/test/AllOfContinue.java b/src/test/java/jez04/structure/test/AllOfContinue.java similarity index 100% rename from java2-lab02-v2/src/test/java/jez04/structure/test/AllOfContinue.java rename to src/test/java/jez04/structure/test/AllOfContinue.java diff --git a/java2-lab02-v2/src/test/java/jez04/structure/test/ClassExist.java b/src/test/java/jez04/structure/test/ClassExist.java similarity index 100% rename from java2-lab02-v2/src/test/java/jez04/structure/test/ClassExist.java rename to src/test/java/jez04/structure/test/ClassExist.java diff --git a/java2-lab02-v2/src/test/java/jez04/structure/test/ClassStructureTest.java b/src/test/java/jez04/structure/test/ClassStructureTest.java similarity index 100% rename from java2-lab02-v2/src/test/java/jez04/structure/test/ClassStructureTest.java rename to src/test/java/jez04/structure/test/ClassStructureTest.java diff --git a/java2-lab02-v2/src/test/java/jez04/structure/test/ContainsInnerClasses.java b/src/test/java/jez04/structure/test/ContainsInnerClasses.java similarity index 100% rename from java2-lab02-v2/src/test/java/jez04/structure/test/ContainsInnerClasses.java rename to src/test/java/jez04/structure/test/ContainsInnerClasses.java diff --git a/java2-lab02-v2/src/test/java/jez04/structure/test/HasMethod.java b/src/test/java/jez04/structure/test/HasMethod.java similarity index 100% rename from java2-lab02-v2/src/test/java/jez04/structure/test/HasMethod.java rename to src/test/java/jez04/structure/test/HasMethod.java diff --git a/java2-lab02-v2/src/test/java/jez04/structure/test/HasProperty.java b/src/test/java/jez04/structure/test/HasProperty.java similarity index 100% rename from java2-lab02-v2/src/test/java/jez04/structure/test/HasProperty.java rename to src/test/java/jez04/structure/test/HasProperty.java diff --git a/java2-lab02-v2/src/test/java/jez04/structure/test/IsDescendatOf.java b/src/test/java/jez04/structure/test/IsDescendatOf.java similarity index 100% rename from java2-lab02-v2/src/test/java/jez04/structure/test/IsDescendatOf.java rename to src/test/java/jez04/structure/test/IsDescendatOf.java diff --git a/java2-lab02-v2/src/test/java/jez04/structure/test/IsInterface.java b/src/test/java/jez04/structure/test/IsInterface.java similarity index 100% rename from java2-lab02-v2/src/test/java/jez04/structure/test/IsInterface.java rename to src/test/java/jez04/structure/test/IsInterface.java diff --git a/java2-lab02-v2/src/test/java/jez04/structure/test/ResourceContains.java b/src/test/java/jez04/structure/test/ResourceContains.java similarity index 100% rename from java2-lab02-v2/src/test/java/jez04/structure/test/ResourceContains.java rename to src/test/java/jez04/structure/test/ResourceContains.java diff --git a/java2-lab02-v2/src/test/java/jez04/structure/test/SrcContains.java b/src/test/java/jez04/structure/test/SrcContains.java similarity index 100% rename from java2-lab02-v2/src/test/java/jez04/structure/test/SrcContains.java rename to src/test/java/jez04/structure/test/SrcContains.java diff --git a/java2-lab02-v2/src/test/java/jez04/structure/test/StructureHelper.java b/src/test/java/jez04/structure/test/StructureHelper.java similarity index 100% rename from java2-lab02-v2/src/test/java/jez04/structure/test/StructureHelper.java rename to src/test/java/jez04/structure/test/StructureHelper.java diff --git a/java2-lab02-v2/src/test/java/jez04/structure/test/StructureMatcher.java b/src/test/java/jez04/structure/test/StructureMatcher.java similarity index 100% rename from java2-lab02-v2/src/test/java/jez04/structure/test/StructureMatcher.java rename to src/test/java/jez04/structure/test/StructureMatcher.java