Chess Application
A Python-based chess game that supports both a Command-Line Interface (CLI) and a Graphical User Interface (GUI). This project is designed with a modular structure where the core game logic is separated from the UI, making it easier to maintain and extend.
Project Structure
my_chess/ ├── install.sh # Installation script to set up dependencies and create a virtual environment ├── main.py # Entry point that selects between CLI and GUI modes based on command-line arguments └── src/ # Contains the source code for the application ├── init.py # Marks the directory as a Python package ├── game.py # Core chess logic (game state, moves, board management) ├── cli.py # CLI mode implementation for interacting via the terminal └── gui.py # GUI mode implementation using Tkinter
markdown Copy
Features
- Modular Design: Separates game logic from the user interface.
- Dual Modes: Choose between CLI mode and a Tkinter-based GUI mode.
- Automated Setup:
install.shchecks for required dependencies and sets up a dedicated Python virtual environment. - System-Wide Installation: Option to install a binary to
/usr/local/bin/chessfor easy access.
Requirements
- Operating System: Linux (tested on Ubuntu/Debian)
- Python Version: Python 3.6 or higher
- Dependencies:
- Python's built-in
venvmodule - Tkinter (typically included with Python installations on Linux)
- Python's built-in
- Privileges: Sudo privileges for installing system packages via
apt-get
Installation
- Clone the Repository:
git clone https://github.com/yourusername/my_chess.git
cd my_chess
Run the Installation Script:
./install.sh
The script will:
Check if required dependencies are installed (and prompt to install if not).
Create the virtual environment at /lib/python-venvs/chess.
Set up the necessary directories and permissions.
Activate the Virtual Environment (if needed):
source /lib/python-venvs/chess/bin/activate
Usage Running in CLI Mode To start the chess application in command-line mode:
python main.py
Follow the on-screen instructions to make moves and interact with the game.
Running in GUI Mode To start the chess application with the graphical interface:
python main.py --gui
A Tkinter window will open, providing buttons and text displays to interact with the chess game.
Contributing Contributions are welcome! If you encounter any issues or have suggestions for improvements:
Fork the repository
Create a feature branch
Commit your changes and open a pull request