1
0
mirror of https://github.com/tiyn/yeschess.git synced 2025-10-16 12:51:24 +02:00

documentation: updated the readme documentation

The readme was partly outdated.
I decided not to put in depth documentation into
the readme.
Additionally i added missing docstrings into posMoveDB
This commit is contained in:
TiynGER
2021-05-15 02:33:21 +02:00
parent 362d293fb1
commit 80772462da
3 changed files with 26 additions and 16 deletions

View File

@@ -4,29 +4,35 @@
ychess is a chess implementation and engine written in nim.
## Usage
## Quick Setup
To play chess in the commandline simply download the code and run `nim c -r game.nim`.
To play chess in the commandline simply download the code (or clone the
repository) and run `nim c -r game.nim`.
You can either play the 1v1 hotseat mode or a single player mode vs the engine.
### Lichess
ychess uses the lichess api with the python plugin [berserk](https://github.com/rhgrant10/berserk).
An instance of the engine occasionally plays on [lichess](https://lichess.org/@/tiyn-ychess).
Additionally ychess uses the lichess api to make playing more convenient.
An instance of the engine occasionally plays on
[lichess](https://lichess.org/@/tiyn-ychess).
To get into the whitelist just write a ingame message to the account.
## Testing
## Project Structure
Testing is done by `einheit` by [jyapayne](https://github.com/jyapayne/einheit).
All legal chess moves are implemented in `chess.nim` and tested by the TestSuite
in `test.nim`.
You can simply run the tests with `nim c -r test.nim`.
- `art` - contains pictures and arts not used in the code.
- `bin` - is not pushed to the git repository but contains all binaries and will
be created if you compile a program.
- `htmldocs` - is not pushed to the git repository but contains all
automatically generated documentation.
- `src` - is the root folder for all programs except tests.
- `tests` - contains all tests.
## Documentation
### Documentation
Documentation is written into the code via DocGen.
For this reason it is not saved in this repository.
To extract it into html run `nim doc --project --index:on --outdir:docs game.nim`
To extract it into html (assuming you want the documentation for `game.nim`)
run `nim doc --project --index:on --outdir:htmldocs game.nim`.
## General Design Choices
### Moves
@@ -44,5 +50,5 @@ The engine uses a simple implementation of the
[NegaMax](https://www.chessprogramming.org/NegaMax)-algorithm with
[Alpha-Beta-Pruning](https://www.chessprogramming.org/Alpha-Beta#Negamax_Framework).
For the evaluation function each piece has a corresponding value.
Additionally there are [piece-square tables](https://www.chessprogramming.org/Piece-Square_Tables)
to encurage putting pieces on active squares.
Additionally [piece-square tables](https://www.chessprogramming.org/Piece-Square_Tables)
are used.