Letzte Änderungen

Improvements_Together
Vickvick2002 2025-01-07 09:56:46 +01:00
parent 4284c262e2
commit af277a5fab
2 changed files with 123 additions and 1 deletions

View File

@ -7,6 +7,7 @@
<groupId>org.example</groupId> <groupId>org.example</groupId>
<artifactId>HitoriTeamProjekt</artifactId> <artifactId>HitoriTeamProjekt</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties> <properties>
<maven.compiler.source>21</maven.compiler.source> <maven.compiler.source>21</maven.compiler.source>
@ -44,6 +45,15 @@
<build> <build>
<plugins> <plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>21</source> <!-- Java-Version -->
<target>21</target> <!-- Java-Version -->
</configuration>
</plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId> <artifactId>maven-jar-plugin</artifactId>
@ -51,7 +61,6 @@
<configuration> <configuration>
<archive> <archive>
<manifest> <manifest>
<addClasspath>true</addClasspath>
<mainClass>PR2.HitoriSpiel.Main.Main</mainClass> <!-- Vollqualifizierter Name deiner Main-Klasse --> <mainClass>PR2.HitoriSpiel.Main.Main</mainClass> <!-- Vollqualifizierter Name deiner Main-Klasse -->
</manifest> </manifest>
</archive> </archive>

View File

@ -0,0 +1,113 @@
@startuml
package PR2.HitoriSpiel.Domain {
class Action {
- int row
- int col
- String oldState
- String newState
+ getRow(): int
+ getCol(): int
+ getOldState(): String
+ getNewState(): String
}
class HitoriBoard {
- int[][] numbers
- List<String> solutionCoordinates
- String boardName
+ getNumbers(): int[][]
+ setNumbers(int[][] numbers): void
+ getCell(int row, int col): HitoriCell
+ resetBoard(): void
}
class HitoriCell {
- int number
- CellState state
+ getNumber(): int
+ getState(): CellState
+ setState(CellState state): void
}
class HitoriValidator {
- HitoriBoard board
+ validateBoard(List<String> solution): boolean
}
class StateFileManager {
+ saveState(Stack<Action> undoStack, Stack<Action> redoStack): void
+ loadState(Stack<Action> undoStack, Stack<Action> redoStack): void
}
}
package PR2.HitoriSpiel.Fassade {
class GameBoard {
- HitoriBoard board
- Timer timer
- long startTime
- long pausedTime
+ startTimer(): void
+ stopTimer(): void
+ resumeTimer(): void
+ resetBoard(): void
}
class StateManager {
- Stack<Action> undoStack
- Stack<Action> redoStack
+ saveAction(int row, int col, String oldState, String newState): void
+ undo(): Action
+ redo(): Action
}
class Setup {
+ stylePanel(JPanel panel): void
+ styleLabel(JLabel label): void
+ createButton(String text, int width, int height): JButton
}
class HighscoreManager {
- List<Highscore> highscoreList
+ addHighscore(String playerName, int score, String boardName, int errors): void
+ getHighscoresForBoard(String boardName): List<Highscore>
}
}
package PR2.HitoriSpiel.GUI {
class BoardLoader {
+ loadBoardsAsList(): List<String>
+ loadBoard(String resourcePath): int[][]
}
class HighscoreDialog {
- HighscoreManager highscoreManager
- DefaultTableModel tableModel
+ HighscoreDialog(JFrame parentFrame, List<String> boardNames)
}
class PauseMenu {
- GameBoard gameBoard
+ PauseMenu(JFrame parent, GameBoard gameBoard, ActionListener resumeAction, ActionListener mainMenuAction, ActionListener exitAction)
}
class StartMenu {
+ selectBoard(): void
+ randomBoard(): void
+ highscorelist(): void
}
}
package PR2.HitoriSpiel.Main {
class Main {
+ main(String[] args): void
}
}
PR2.HitoriSpiel.Domain.HitoriBoard "1" *-- "many" PR2.HitoriSpiel.Domain.HitoriCell
PR2.HitoriSpiel.Domain.StateManager "1" *-- "many" PR2.HitoriSpiel.Domain.Action
PR2.HitoriSpiel.Fassade.GameBoard "1" *-- "1" PR2.HitoriSpiel.Domain.HitoriBoard
PR2.HitoriSpiel.GUI.BoardLoader ..> PR2.HitoriSpiel.Domain.HitoriBoard
PR2.HitoriSpiel.GUI.HighscoreDialog ..> PR2.HitoriSpiel.Fassade.HighscoreManager
PR2.HitoriSpiel.GUI.PauseMenu --> PR2.HitoriSpiel.Fassade.GameBoard
PR2.HitoriSpiel.GUI.StartMenu --> PR2.HitoriSpiel.GUI.BoardLoader
@enduml