lichess.org
Donate

Chess Endgame Training webapp updated

@Officer_LoseALot Maybe it's worth it exploring the idea. Can you elaborate more on this? "Random endgame" with what pieces (quality and quantity) involved? Perhaps a new button "random" in the current position to generate a different one with the same pieces involved? And/or a button in the list page? Or an editor like this raitzer.github.io/ChessRandomizer/ ?
Should the app make sure the random position is "winnable" (not a trivial problem)?
If it was possible to pull random endgames from the lichess database with a prompt such as: "Win this game for white/black" or "draw this game for white/black". Possibly excluding clearly endgames one might find less "instructive".

"Perhaps a new random button in the current position to generate a different one with the same pieces involved?"
YES! That would be splendid.

"Or an editor like this raitzer.github.io/ChessRandomizer/ ?" An editor like that, that provides a full endgame to win for your side would be EXACTLY the thing I'd be looking for. I wanna make sure my endgame ability is up to snuff, but I don't have ONE specific type of endgame I want to practice. I want to practice endgames in general. This type of generator would really help with that.

"Should the app make sure the random position is "winnable" (not a trivial problem)?"
Either winnable or a short tactic to draw would be reasonable I think

Thanks in advance.
Best regards - Officer_LoseALot
Your website is amazing, I worked out the entire king and pawns section back in 2020 to help my game, and I can say I haven't seen any better training website.

The only thing that made me stop using it was that you had to play every position till checkmate, even if you have king+queen vs king. Now you have solved it in the beta version, I am going to have to start using the app once more.
I have a couple of suggestions for random endgames with no clear win for one side. I think such endgames are also useful for training. I have a few collections. I think you can make good use of these collections in an endgame training tool.

One collection has 157846 endgame positions, which came from Stockfish test suits (github.com/official-stockfish/books - the file endgames.epd.zip). In fact I am running round robin tournaments between 16 of the top 25 or so engines using these positions, without tablebases. In my matches, cutechess-gui selects a random position and the engines play a game pair from that position. The games are quite interesting to watch.

Another collection that I obtained from github.com/jhorthos/lczero-training/wiki/Opening-Books has been used in Lc0 testing. Here you will find 14 piece endgames (1M+ positions) and 16 piece endgames (1.34M positions) (in fact there are games leading to these positions). I believe the positions have been extracted from caissbase. Each position is evaluated by an Lc0 net, and given a q-score. Positions with q-score in the range -0.25 to +0.25 are quite balanced (roughly -+ 30 centipawn on Stockfish scale) and they get more imbalanced as the absolute value of the q-score increases.

Finally, a large collection of mate in N puzzles is included with Scid vs PC. I am not sure if the collection is from the epd position database here http://www.nk-qy.info/40h/. If not, you have yet another collection.
Thanks for your comment @kajalmaya It's great to know new resources where positions can be extracted from.

I'm willing to add some positions for which we can precalc forced mate or forced draw lines.

This would involve a lot of work: evaluate FENs (I have these scripts: gist.github.com/supertorpe/3cb7b3416029a149a441d76dc3c97f2a and gist.github.com/supertorpe/a0058bf209c07c1d26848db25d84725a) and categorize them so I could include them in the correct group.

Furthermore, I also have to be careful not to include too many positions in the same category. For instance, once the user feels comfortable after facing numerous positions of two rooks against bishop, it wouldn't make much sense to flood that category with thousands of similar positions.

The first step would be to answer these questions: What categories of positions would be interesting to add to the application that it currently doesn't have? Which categories have very few positions and would benefit from adding more?

Then I could look for FEN positions that match with those categories to do a first filter, and next, evaluate them to check what are forced mates, what are forced draws and discard the rest.

As a side note, the webapp has already got a number of drawish positions (i.e. chess-endgame-trainer.mooo.com/position/1/4/3 ).