The Drake is a strategic board game developed in Java
using JavaFX
for the graphical user interface.
The game is designed to challenge players' strategic thinking and decision-making skills.
SemestralWork/
: Root directory of the project.out/
: Compiled class files and other output.production/
: Compiled production files.test/
: Compiled test files.
TheDrake/
: Main source directory.out/
: Output directory for compiled files.src/
: Source files for the project.thedrake/
: Main package containing game logic and assets.assets/
: Game assets like images and fonts.controllers/
: Controllers for managing game interactions.fonts/
: Fonts used in the game.images/
: Images used in the game.models/
: Data models representing game entities.ui/
: User interface components.views/
: Views for different game screens.GameApp.java
: Main application entry point.
test/
: Test directory containing unit tests.module-info.java
: Module configuration file.
The project leverages a variety of technologies and programming concepts, including:
Java
: The core programming language used to develop the game.JavaFX
: Framework for building the graphical user interface.- OOP (Object-Oriented Programming): Core principles such as inheritance, polymorphism, and encapsulation.
- Exception Handling: Proper management of errors and exceptions to ensure robust code.
- Collections Framework: Utilization of
Java Collections
for managing game data structures. - IO
Stream
API: Handling input and output operations. JavaFX
for UI: Building and managing the graphical user interface.- Threads and Concurrency: Managing concurrent operations within the game.
- Network Programming: (If applicable) Handling any network-related functionality.
- Database Connectivity: (If applicable) Managing data persistence.
- Design Patterns: Utilizing design patterns such as Singleton, Factory, and MVC.
Here is a summary of the key mechanics:
- Objective: The objective of the game is to strategically move pieces on the board to achieve specific goals, such as capturing the opponent's pieces or reaching a designated area.
- Gameplay:
- Players take turns to move their pieces.
- Each piece has specific movement capabilities and rules.
- The game includes different types of pieces, each with unique abilities and attributes.
- Winning Conditions: The game can be won by fulfilling certain conditions, such as capturing all of the opponent's pieces or achieving a strategic position on the board.
- Special Moves: The game may include special moves or abilities that can be used under certain conditions to gain an advantage.
- Start the Game:
- Run the game using the provided script.
- The game window will open, displaying the main menu. Currently, only the main menu of the game is implemented; the gameplay is not yet completed.
- Make Moves:
- Use the mouse or keyboard to select and move pieces according to the game rules.
- Follow the on-screen prompts and instructions to navigate through the game.
- Win the Game:
- Achieve the winning conditions by strategically moving your pieces and outmaneuvering your opponent.
The Drake is a comprehensive and engaging board game that leverages Java
and JavaFX
to provide a rich gaming experience.
By combining various programming concepts and technologies, the game offers both a challenging and enjoyable experience for players.
In this project, my first project in Java
, I explored all the basic technologies of the language, familiarized myself with various concepts,
and the game became the project where I applied my knowledge.