As an avid chess player, this project holds a special place in my heart as it marks my first steps within the realm of IT. Having two applications that communicate via subprocesses, it embodies the classic game of chess, taking in consideration all its rules: from castling to promotion and en passant. The game is designed for 1 vs 1 play.
- C++
- SFML (Simple and Fast Multimedia Library)
- Subprocess Utilities
- CMake
- The project was developed on Linux Ubuntu (not sure which version)
- The project is pretty much cross-platform. It just needs gcc compiler and SFML installed.
This project consists of 2 applications: Chess-Interface and Chess-AI(no AI involved sadly).
The Chess-Interface is just a SFML project which creates the interface, but has no idea of any chess rule. It creates the Chesss-AI project as a subprocess when it starts.
The Chess-AI is the main application, which has all the rules implemented, has all the move history. It communicates with the interface via a pipe.
- Load the CMake file from the Chess-AI application(the top-level not the CMake from the src directory). Create the executable (Chess-AI_run).
- Load the CMake file from Chess-Interface applcation. Compile it and if the first step was done before hand the interface should show on the screen.
- How the interface should look.
![image](https://private-user-images.githubusercontent.com/106026094/314640797-5d6edbcd-da4c-4f3f-9d6e-05eb9dd333ef.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE2NzQzMzUsIm5iZiI6MTcyMTY3NDAzNSwicGF0aCI6Ii8xMDYwMjYwOTQvMzE0NjQwNzk3LTVkNmVkYmNkLWRhNGMtNGYzZi05ZDZlLTA1ZWI5ZGQzMzNlZi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzIyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcyMlQxODQ3MTVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xZTNiMTVjMjBkNzVmMGY1MjVhNWQxYjUwMjdhZjZiYTQwZWJlMGQ5MDk1ZWM1ZWZlN2EwODJhNWFjNzBkNzM5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.5H5_t8nIG6zntKg1tx8wdLvRe1UgqYHQJySKVWDecrE)
- Each piece when selected will have it's valid moves highlighted.
![image](https://private-user-images.githubusercontent.com/106026094/314640885-d904dd67-0b14-47c4-a51f-85e0f49f17f1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE2NzQzMzUsIm5iZiI6MTcyMTY3NDAzNSwicGF0aCI6Ii8xMDYwMjYwOTQvMzE0NjQwODg1LWQ5MDRkZDY3LTBiMTQtNDdjNC1hNTFmLTg1ZTBmNDlmMTdmMS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzIyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcyMlQxODQ3MTVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04OWRmNmUwOTU0YTA1YTgxM2ExZWViOGIyOGExMDIyMjc4MWI3YjBkNjIwMmRlN2UwNmZmMDFkNmNjN2JlMzFhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.OjN5YdurkYEcWFAsFFDf4dawdCrVtiiuEENM7BctOqU)
- This knight cannot move because it's pinned by the bishop. The king would be in check if it moved.
![image](https://private-user-images.githubusercontent.com/106026094/314641028-43b97028-8c95-452b-a9aa-a44374c339e3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE2NzQzMzUsIm5iZiI6MTcyMTY3NDAzNSwicGF0aCI6Ii8xMDYwMjYwOTQvMzE0NjQxMDI4LTQzYjk3MDI4LThjOTUtNDUyYi1hOWFhLWE0NDM3NGMzMzllMy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzIyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcyMlQxODQ3MTVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1kNGNhZTgwYjNmOWJkZjViNjkzZWY0Mzg5YzQ1M2FhYTJjZjVjNmEzZWMyNjg1ZGU3YzU1Y2FkNzNkYWMzODIxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.dq09UwLHleLnEzljCNioyBFDc61SAz45v4jx2BRm7Gs)
- How the interface will respond if you want to promote a pawn.
![image](https://private-user-images.githubusercontent.com/106026094/314641104-dbb58cb4-bf23-4424-9d03-dd3c9a64fc14.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE2NzQzMzUsIm5iZiI6MTcyMTY3NDAzNSwicGF0aCI6Ii8xMDYwMjYwOTQvMzE0NjQxMTA0LWRiYjU4Y2I0LWJmMjMtNDQyNC05ZDAzLWRkM2M5YTY0ZmMxNC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzIyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcyMlQxODQ3MTVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jYzQ2Yjc3MzliNzU0ZjM1NjdlOWQyMjg5ZmJkMjlhMTA5ZWFmZWFiMDNlNjgyZmJlMWI4NmYyNGY1MDQ0NWVmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.ezrtcZk9iH7Rh4arAuX-sjVR8zG0voklmKgyKpsbrfw)