Skip to content

Math23Kskb/SudokuFX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SudokuFX

Latest Release License Java Version

SudokuFX is a JavaFX-based Sudoku game providing a classic and engaging puzzle experience with a clean user interface, core Sudoku logic, and built-in error monitoring.

Features

  • Interactive Sudoku Board: A 9x9 grid-based Sudoku board where players can enter numbers and attempt to solve the puzzle. The board is visually styled with subgrid highlighting for improved readability.
  • Number Input Validation: Real-time validation prevents the placement of numbers that violate Sudoku rules. Invalid moves trigger a warning alert explaining the specific rule violation (row, column, or 3x3 box conflict).
  • Automatic Sudoku Generation: Automatically generates new Sudoku puzzles with varying difficulty.
    • A Sudoku solver creates a complete, valid Sudoku solution.
    • A number remover removes numbers from the solved board to create a puzzle, balancing difficulty and solvability.
  • Game Over Detection: Detects when the Sudoku board is completely filled. A "Congratulations!" screen appears upon completion.
  • New Game Functionality: A "Start New Game" button on the "Congratulations!" screen starts a new Sudoku game.
  • Error Monitoring & Logging: Integrated with Sentry for real-time error tracking and Logback for detailed local logging, improving stability and support.
  • Unit and System Tests: Comprehensive unit and system tests ensure the software's core functionalities are robust.

Technologies Used

Installation

There are two primary ways to install and run SudokuFX:

1. Using the JAR file (Simplest):

  • Download the SudokuFX-1.1.0.jar file from the Releases Page.
  • Ensure you have Java 17 or higher installed on your system.
  • Run the game by double-clicking the JAR file or using the following command in your terminal/command line:
    java -jar SudokuFX-1.1.0.jar

2. Building from Source (For Developers):

  1. Clone the repository:
    git clone https://github.com/Math23Kskb/SudokuFX.git
    cd SudokuFX
  2. Build the project using Maven:
    mvn clean install
    (This will generate SudokuFX-1.1.0.jar in the target/ directory)
  3. Run the game using Maven:
    mvn javafx:run
    Alternatively, you can find the JAR file (SudokuFX-1.1.0.jar) in the target/ directory after building and run it as described in method 1 (using java -jar SudokuFX-1.1.0.jar).

Usage

Simply launch the application. The Sudoku board will appear, and you can start playing by entering numbers into the empty cells. The game will provide real-time validation of your moves. When you complete the puzzle, you'll be congratulated! Logs will be generated (check Logback configuration for location), and errors will be reported to Sentry if configured.

Contributing

We welcome contributions from the community! If you'd like to contribute to SudokuFX, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes.
  4. Write tests to cover your changes.
  5. Submit a pull request.

Please ensure your code adheres to the project's coding style and that all tests pass before submitting a pull request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Known Issues

  • No known major issues at this time. Please report any issues you encounter on the Issue Tracker.

Future Implementations

We plan to add the following features in future releases:

  • Difficulty Selection: Allow users to choose a specific difficulty level (Easy, Medium, Hard, Expert) to customize their gameplay experience.
  • Timer: Implement a timer to track how long it takes the user to solve a puzzle.
  • Hints: Provide a "Hint" button that reveals a single correct number on the board, offering assistance to players who are stuck.
  • Undo/Redo: Implement undo and redo functionality to allow players to easily revert and reapply moves.
  • Save/Load Game: Enable users to save their progress and load games later.
  • Improved UI/UX: Enhance the user interface and overall user experience with improved styling, animations, and accessibility features.
  • More robust error handling: Continue improving user feedback and recovery for unexpected situations.

Credits

Developed by Matheos Chiyuki Kusakabe (Math23Kskb)

Support

If you have any questions or need help with SudokuFX, please open an issue on the Issue Tracker.

Enjoy playing Sudoku! We hope you find SudokuFX to be a fun and engaging puzzle game.

About

A Sudoku game implemented in Java with UI using JavaFX.. The project aims to provide an interactive experience for playing Sudoku in desktop application.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors