This project implements a game with both client and server components. The client handles the user interface, game logic, and AI, while the server manages game data, game logic, and client interactions.
The client is responsible for interacting with the user, executing game logic, and communicating with the server. The main components of the client are:
- DijkstraPath.java: Implements Dijkstra's algorithm for pathfinding.
- GoalSetting.java: Defines goals and objectives for the AI.
- Pathfinder.java: Main class for pathfinding logic.
- Converter.java: Converts data between different formats.
- GameLogic.java: Contains the main game logic.
- ClientAction.java: Represents actions taken by the client.
- GameFlags.java: Contains flags indicating game state.
- GameStatus.java: Represents the status of the game.
- Coordinate.java: Represents coordinates on the game map.
- Fullmap.java: Represents the full game map.
- MapGenerator.java: Generates game maps.
- MapValidator.java: Validates the generated maps.
- NetworkClient.java: Handles network communication with the server.
- CLI.java: Command-line interface for the game.
- UX.java: Handles user experience elements.
The server is responsible for managing game data, processing game logic, and handling client requests. The main components of the server are:
- RuleBreakException.java: Custom exception for rule violations.
- GameStatus.java: Represents the status of the game.
- PlayerInfo.java: Contains information about players.
- ServerMapHandler.java: Manages server-side map handling.
- GameHandlerLogic.java: Contains the main game handling logic.
- GenerateUniqueGameID.java: Generates unique game IDs.
- SQLiteDialect.java: Custom SQLite dialect for Hibernate.
- MainServer.java: Entry point for the server application.
- ServerEndpoints.java: Defines the server endpoints.
- ServerMap.java: Represents the server-side game map.
- The server implementation is missing the
move
endpoint, which is required to handle client move requests.
To run the client and server, follow the instructions below:
- Java Development Kit (JDK)
- Maven
- Navigate to the server directory:
cd Source/Teilaufgabe\ 3\ -\ Server
- Build the server:
mvn clean install
- Run the server:
mvn exec:java -Dexec.mainClass="server.main.MainServer"
- Navigate to the client directory:
cd Source/Teilaufgabe\ 2\ -\ Client
- Build the client:
mvn clean install
- Run the client:
mvn exec:java -Dexec.mainClass="client.main.MainClient"
This software project was developed in IDE Eclipse 2022-03 Version
Contributions are welcome! Please submit a pull request or open an issue to discuss any changes.
This project is licensed under the MIT License - see the LICENSE file for details.