Skip to content

A Java game leveraging most fundamental language concepts and utilizing the JavaFX framework ๐Ÿ•น๏ธ

Notifications You must be signed in to change notification settings

bursasha/javafx-drake-game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 

Repository files navigation

The Drake Game ๐ŸŽฎ

Overview ๐Ÿ”

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.

Project Structure ๐Ÿ“

  • 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.

Technology Stack and Concepts Used ๐Ÿš€

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.

Game Rules and Mechanics ๐Ÿ“œ

Here is a summary of the key mechanics:

  1. 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.
  2. 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.
  3. 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.
  4. Special Moves: The game may include special moves or abilities that can be used under certain conditions to gain an advantage.

How to Play ๐ŸŽฎ

  1. 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.
  2. 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.
  3. Win the Game:
    • Achieve the winning conditions by strategically moving your pieces and outmaneuvering your opponent.

Conclusion โญ๏ธ

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.

About

A Java game leveraging most fundamental language concepts and utilizing the JavaFX framework ๐Ÿ•น๏ธ

Topics

Resources

Stars

Watchers

Forks