Giter VIP home page Giter VIP logo

chesstrainer's Introduction

The aim of ChessTrainer program is to train on opening chess books.

Given a PGN file, preferably on a single tree (one game, but with many variations), the computer chooses a random variation from the opponent's moves and asks the best move (or one of the bests if more are accepted) to the player, in other words the main variation of the position (or one of the following ones, depending on the desired limit).

It is possible to use a PGN with several games ; one can imagine that each game is in this case a different opening model.

One can start the training on: a random game, the current game or even the current position.

The random choice of move from variations can be uniform, but also order dependant, which means the firsts variations will be more likely to be chosen than the nexts ones (using a beta-binomial distribution).

PGN files can be slightly edited, e.g. by adding comments and arrows with four different colors using right-clic with ctrl and/or alt keys.

Another program, AutoPGN, not integrated in ChessTrainer, allows to build PGN files with stockfish, possibly from a position in fen format.

Both programs require the addition of the chess package created by Niklas Fiekas:
https://github.com/niklasf/python-chess

ChessTrainer also needs scipy package:
https://github.com/scipy/scipy

You also need to have the stockfish chess engine installed to be able to start the analysis.
It is possible to modify the address of the executable, and also to modify some options.

chesstrainer's People

Contributors

pathev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

felixb

chesstrainer's Issues

Transpositions

Hi, are there plans to add support for transpositions? Basically if the same position can be reached in multiple ways, right now these positions are considered separate and so the same moves would have to be added multiple times (e.g. 1. d4 d5 2. c4 e6 3. Nf3 Nf6 4. Nc3 or 1. d4 d5 2. c4 e6 3. Nc3 Nf6 4. Nf3). It would be super useful if it would recognize that it is the same position in both cases.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.