Skip to content

redsteadz/PuzzledChess

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Puzzled Chess

► Another Chess board for Puzzle solving !

image Video

license last-commit repo-top-language repo-language-count


Table of Contents

Overview

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.


Features

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

Repository Structure

└── 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

Modules

.
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

Getting Started

System Requirements:

  • C: version x.y.z

Installation

From source

  1. Clone the PuzzledChess repository:
$ git clone https://github.com/redsteadz/PuzzledChess
  1. Change to the project directory:
$ cd PuzzledChess
  1. Make the build folder:
$ mkdir build
$ cd build
  1. Make the prerequisites for CMake:
$ cmakke ..
  1. Build:
$ make

Usage

From source

Run PuzzledChess using the command below:

$ ./Chess

Tests

Run the test suite using the command below:

$ /* No common unit test framework in C */

Project Roadmap

  • ► 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 ? )
  • ► ...

Contributing

Contributions are welcome! Here are several ways you can contribute:

Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your github account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone https://github.com/redsteadz/PuzzledChess
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear message describing your updates.
    git commit -m 'Implemented new feature x.'
  6. Push to github: Push the changes to your forked repository.
    git push origin new-feature-x
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
  8. Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
Contributor Graph


License

This project is protected under the SELECT-A-LICENSE License. For more details, refer to the LICENSE file.


Acknowledgments


About

CharsiNeChessBnayaRe

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages