► Another Chess board for Puzzle solving !
Table of Contents
Welcome to the Chess Puzzle Master project! This innovative and visually appealing chess puzzle application was developed as a part of a second-semester project. The goal of Chess Puzzle Master is to offer chess enthusiasts a dynamic and engaging way to sharpen their chess skills by solving puzzles extracted directly from Lichess - one of the most popular chess platforms available today.
Chess Puzzle Master stands out due to its sleek interface and the animated movements of the chess pieces, which add a delightful and interactive dimension to the puzzle-solving experience. Each piece animates smoothly across the board to its destination, and even the suggested position squares, hinting where a piece might best be moved, come alive with animation.
- Puzzle Source: All puzzles are dynamically loaded from Lichess, ensuring a vast and varied collection that is continually updated with new challenges.
- Three Unique Modes:
- One Shot: Test your precision and foresight by solving each puzzle in just a single attempt. Perfect for those who love a challenge and want to test their accuracy under pressure.
- Timed: With a countdown of 5 minutes, see how many puzzles you can solve within the time limit. It’s a race against time that requires quick thinking and rapid decision-making.
- No Limit: For those looking for a more relaxed experience, this mode allows you to take your time with each puzzle, making it perfect for learning and practice without any stress.
- Animated Pieces and Suggested Positions: To enhance the user experience, all chess pieces and suggestion squares are fully animated, bringing the game to life and making your puzzle-solving journey even more enjoyable.
└── PuzzledChess/
├── CMakeLists.txt
├── assets
│ ├── GUI.png
│ ├── bB.png
│ ├── bK.png
│ ├── bN.png
│ ├── bP.png
│ ├── bQ.png
│ ├── bR.png
│ ├── chess7
│ ├── pixel_png
│ ├── pixel_png.zip
│ ├── randLine.cpp
│ ├── sound
│ ├── svgtopng.zip
│ ├── wB.png
│ ├── wK.png
│ ├── wN.png
│ ├── wP.png
│ ├── wQ.png
│ └── wR.png
├── compile_commands.json
├── headers
│ ├── animate
│ ├── animate.h
│ ├── constant.h
│ ├── database.h
│ ├── gui.h
│ └── sound.h
└── main.cpp.
| File | Summary |
|---|---|
| CMakeLists.txt | Sets up the Chess project with CMake for building and debugging. Copies assets to the build directory. Uses Raylib for graphics. Declares the main.cpp file as the executable, linking with Raylib library. |
| compile_commands.json | Enables compilation details for Chess project files, aiding in the build process by specifying commands and output locations. |
| main.cpp | SummaryThis code file within the PuzzledChess repository contributes to the graphical user interface (GUI) of the chess application. It efficiently manages the display of different chess piece images and handles user interactions with the game board. The critical features it provides include rendering the board, displaying various chess piece graphics based on game state, and enabling player moves through intuitive interface interactions. This code file plays a crucial role in ensuring a seamless and engaging user experience within the chess application. |
headers
| File | Summary |
|---|---|
| animate.h | Features the animations played out in moving pieces, making squares and displaying some text |
| constant.h | Has all the global variables of the game |
| database.h | Features the functions used to Access the hefty database of lichess |
| gui.h | Makes some custom built UI interactables |
| sound.h | Simply has the sounds in an easy to use map |
System Requirements:
- C:
version x.y.z
- Clone the PuzzledChess repository:
$ git clone https://github.com/redsteadz/PuzzledChess
- Change to the project directory:
$ cd PuzzledChess
- Make the build folder:
$ mkdir build $ cd build
- Make the prerequisites for CMake:
$ cmakke ..
- Build:
$ make
Run PuzzledChess using the command below:
$ ./Chess
Run the test suite using the command below:
$ /* No common unit test framework in C */
-
► Make a menu -
► Finalize the conditions for chess and all it's variations in moves -
► Hook it up to a Chess engine (Make a chess engine ? ) -
► ...
Contributions are welcome! Here are several ways you can contribute:
- Report Issues: Submit
bugs found or log feature requests for the
PuzzledChessproject. - Submit Pull Requests: Review open PRs, and submit your own PRs.
- Join the Discussions: Share your insights, provide feedback, or ask questions.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your github account.
- Clone Locally: Clone the forked repository to your local machine using a
git client.
git clone https://github.com/redsteadz/PuzzledChess
- Create a New Branch: Always work on a new branch, giving it a descriptive
name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.' - Push to github: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
- Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
This project is protected under the SELECT-A-LICENSE License. For more details, refer to the LICENSE file.
- List any resources, contributors, inspiration, etc. here.
- Lichess Puzzle Database
- Lichess Pieces Assets Return
