JavaSolitaire is a desktop-based implementation of the classic Solitaire card game, developed using Java and JavaFX. This project serves as an exploration into game development with JavaFX, focusing on GUI design, event handling, and game logic.
This application replicates the traditional Solitaire gameplay, emphasizing:
-
Interactive GUI: Utilizing JavaFX to create a responsive and intuitive user interface.:contentReference[oaicite:3]{index=3}
-
Game Mechanics: Implementing core Solitaire rules and logic for an authentic experience.:contentReference[oaicite:6]{index=6}
-
Modular Design: Structured codebase to separate concerns such as game logic, UI components, and event handling.:contentReference[oaicite:9]{index=9}
-
Programming Language: Java:contentReference[oaicite:12]{index=12}
-
GUI Framework: :contentReference[oaicite:14]{index=14}:contentReference[oaicite:16]{index=16}
-
Build Tool: :contentReference[oaicite:18]{index=18}:contentReference[oaicite:20]{index=20}
-
IDE: :contentReference[oaicite:22]{index=22}:contentReference[oaicite:24]{index=24}
JavaSolitaire/ ├── src/ # Source code files ├── build/ # Compiled classes ├── dist/ # Distributable JAR files ├── nbproject/ # NetBeans project configuration ├── out/ # Output directory ├── .idea/ # IntelliJ IDEA project files ├── build.xml # Ant build script ├── manifest.mf # Manifest file for JAR └── README.md # Project documentation
To run the application:
- Clone the Repository:
git clone https://github.com/flashery/JavaSolitaire.git- Build the Project:
Use NetBeans to open the project and build it using the provided build.xml Ant script.
- Run the Application:
Execute the generated JAR file located in the dist/ directory.
java -jar dist/JavaSolitaire.jar🧩 Features Card Movement: Drag-and-drop functionality for moving cards between piles. GitHub
Game Rules Enforcement: Validates moves according to Solitaire rules.
Restart Functionality: Option to reset the game at any point.
Responsive Design: Adjusts layout based on window size.
📌 Future Enhancements Scoring System: Implement a point-based scoring mechanism.
Timer: Add a timer to track game duration.
Multiple Decks: Support for different card deck designs.
Save/Load Game: Ability to save the current game state and resume later.
🧑💻 Author Yves Gonzaga
Exploring the realms of Java game development with a focus on GUI applications.
📄 License This project is licensed under the MIT License.