Metadata-Version: 2.1
Name: harmon
Version: 0.2.0
Summary: A chess engine that considers human mistakes
Home-page: https://github.com/khoda81/harmon
License: MIT
Author: Mahdi Khodabandeh
Author-email: 20.mahdikh.0@gmail.com
Requires-Python: >=3.9,<4.0
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Framework :: Pytest
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Games/Entertainment :: Board Games
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Dist: attrs (>=23.1.0,<24.0.0)
Requires-Dist: bidict (>=0.22.1)
Requires-Dist: more-itertools (>=10.1.0,<11.0.0)
Requires-Dist: python-chess (>=1.999,<2.0)
Requires-Dist: torch (==1.12.1)
Requires-Dist: zstandard (>=0.21.0,<0.22.0)
Project-URL: Repository, https://github.com/khoda81/harmon
Description-Content-Type: text/markdown

# Harmon Chess Engine

<!-- ![Harmon Chess Engine Logo](./images/logo.png) -->

Harmon Chess Engine is a cutting-edge chess engine that leverages the power of transformer-based machine learning models to revolutionize the world of computer chess. Unlike traditional chess engines, Harmon is designed to understand and exploit human mistakes, making it a formidable opponent for chess players of all levels.

## Features

- **Transformer-Powered Chess Engine**: Harmon uses state-of-the-art transformer models to predict human moves, allowing it to adapt its strategy based on the tendencies and mistakes commonly made by human players.

- **Human Mistake Exploitation**: Harmon's unique approach allows it to identify and capitalize on common human errors, giving it a strategic advantage in games.

- **Game Analysis**: Analyze your chess games to gain insights into your playing style and improve your skills. Harmon can provide detailed game summaries, identify key turning points, and suggest areas for improvement.

- **Elo Prediction**: Harmon can estimate the Elo rating of chess players based on their game performance, helping players gauge their progress and understand their strengths and weaknesses.

- **Game Outcome Prediction**: Harmon can predict the likely outcome of a chess game, providing players with valuable insights into the flow and dynamics of the match.

## Getting Started

### Installation

```bash
pip install harmon
```

### Usage

1. Train the model with your preferred dataset, such as PGN files from lichess.

2. Configure Harmon's settings and model parameters to suit your needs.

3. Run Harmon to analyze games, predict outcomes, or play chess against it.

### Example Usage

#### Train the model

```bash
python -m harmon.train
```

#### Generate

```bash
python -m harmon.generate
```

## Contributing

We welcome contributions from the open-source community! If you're interested in improving Harmon Chess Engine or adding new features, please see our [Contribution Guidelines](CONTRIBUTING.md) for details on how to get started.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Acknowledgments

- The Harmon Chess Engine project is inspired by the fascinating world of chess and the advancements in machine learning and artificial intelligence.

- Special thanks to the contributors and developers who have made this project possible.

---

**Disclaimer:** Harmon Chess Engine is a research project and may not be suitable for professional or competitive chess use. Use it for educational and recreational purposes, and have fun exploring the world of chess!

