Skip to content

syedsufyan-coder/Chess-Game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

111 Commits
 
 
 
 
 
 

Repository files navigation

Chess++ ♟️

Chess++ is a robust, interactive chess engine built using C++ and the Raylib graphics library. Designed with Object-Oriented Programming (OOP) principles, it provides a clean and modern local multiplayer experience, bringing the classic game of kings to your desktop with smooth animations and a refined interface.


🚀 Project Overview

Chess++ focuses on delivering a reliable and visually engaging chess platform. By leveraging the power of C++ and the simplicity of Raylib, we have implemented a system that handles complex board logic while maintaining a high-performance GUI. Whether you're a casual player or a strategy enthusiast, Chess++ offers a polished environment for local competitive play.


💡 Key Features

🎮 Gameplay & Rules

  • Comprehensive Rule Engine: Supports almost all official FIDE rules, including standard movement, Check, Checkmate, and Stalemate.
  • Special Moves: Full implementation of En Passant and Pawn Promotion (with choice of piece).
  • Local Multiplayer: A dedicated pre-game menu allows both players to enter their names for a personalized match experience.
  • Strategic Tools: Features a Resign button for early concessions and a real-time display of captured pieces for both sides.

🖥️ User Experience

  • Dynamic Visuals: Supports Board Rotation for a better perspective and a Fullscreen Mode for immersive play.
  • Audio Feedback: Integrated sound effects provide satisfying feedback for every move made on the board.
  • Responsive UI: Enhanced interface includes player name displays, game state notifications, and easy navigation menus.

🛠️ Tech Stack

  • Language: C++ (Object-Oriented Design)
  • Graphics: Raylib
  • Build System: Make / Premake5
  • Platform: Cross-platform (Windows, Linux, macOS)
  • Version Control: Git
  • Cloud Platform: GitHub

👥 The Team

Meet the developers behind Chess++:

Name Role GitHub
Shehryar Rafiq Project Lead, Raylib Setup, Board Logic, UI Systems @shehryar11w
Faizan Basheer Pawn Logic, En Passant, Check Detection, Audio @fayzan101
Syed Muhammad Sufyan Checkmate/Stalemate Logic, Name Input, Captured Pieces @syedsufyan-coder

💻 Installation

Windows

  1. Download MinGW-W64 (if not already installed):

  2. Build Instructions for MinGW-W64:

    • Open Git Bash or Command Prompt.
    • Navigate to the project folder:
      cd "C:\path\to\Chess-GUI-main"
    • Run the following command to build the project:
      make

Linux

  1. Install Dependencies:

  2. Build Instructions:

    • Open a terminal and navigate to the project folder:
      cd "path/to/Chess-GUI-main"
    • Run the following commands:
      ./premake5 gmake2
      make

MacOS

  1. Install Dependencies:

    • Use Homebrew to install premake5:
      brew install premake
  2. Build Instructions:

    • Open a terminal and navigate to the project folder:
      cd "path/to/Chess-GUI-main"
    • Run:
      ./premake5.osx gmake2
      make

🎮 Usage

  • Start a New Game: Launch the built executable to start the game.
  • Multiplayer: Use the mouse or keyboard for moving pieces.
  • Sound Effects: Each move has sound feedback.
  • Board Rotation: Rotate the board for a different perspective.
  • Captured Pieces: See captured pieces for both players.
  • Check/Checkmate: The game detects check, checkmate, and stalemate.

🔧 Future Work & Improvements

  • Castling: Implement the king and rook exchange rule.
  • AI Opponent: Add an AI opponent to enable single-player mode.
  • Save/Load: Implement save and load functionality to resume games.
  • Online Multiplayer: Add support for online multiplayer matches.

📚 Conclusion

We successfully developed a full chess game with all essential features, including:

  • Correct chess logic
  • Special rules like pawn promotion and en passant
  • Checkmate and stalemate detection
  • Enhanced user interface, captured pieces display, and sound effects
  • Fullscreen mode and board rotation

Key Features Recap:

  • Full Chess Rule Implementation
  • Smooth Movement and Sound Feedback
  • Player Name Input Menu
  • Captured Pieces Display
  • Checkmate and Stalemate Detection
  • Fullscreen Mode and Board Rotation

💬 Acknowledgments

We'd like to thank our instructors for their support, and Raylib for providing a great platform for game development.


About

A feature-rich 2D Chess engine built with C++ and Raylib. Implements full FIDE rules, local multiplayer, and an interactive GUI.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors