@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 https://raitzer.github.io/ChessRandomizer/ ?
Should the app make sure the random position is "winnable" (not a trivial problem)?
@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 https://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
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
@supertorpe said in #19:
@nrrrd Fixed in v3.0.3!
Thanks. I'll remember this every time I play the BN endgame!
@supertorpe said in #19:
> @nrrrd Fixed in v3.0.3!
Thanks. I'll remember this every time I play the BN endgame!
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.
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.
@Chess_Addict0004 welcome back to the app and thanks for your words! I hope you enjoy It this time even more than before.
@Chess_Addict0004 welcome back to the app and thanks for your words! I hope you enjoy It this time even more than before.
A sqlite database with 100.000 checkmating patterns taken from Lichess. There are 10.000 mate in 1, 10.000 mate in 2, ..., 10.000 mate in 10.
I could import them and add an option to randomly present a challenge for mate-in-x.
There is a "data" table with 2 columns: "fen" and "moves".
https://github.com/calebjcourtney/chess-endgame-training/blob/master/data/db.sqlite3
A sqlite database with 100.000 checkmating patterns taken from Lichess. There are 10.000 mate in 1, 10.000 mate in 2, ..., 10.000 mate in 10.
I could import them and add an option to randomly present a challenge for mate-in-x.
There is a "data" table with 2 columns: "fen" and "moves".
https://github.com/calebjcourtney/chess-endgame-training/blob/master/data/db.sqlite3
Congrats! A great app!
Thanks @CHESSMASTER7940
I've added 10.000 positions from the database commented above. You can access and play them under the menu "Checkmate in...".
Thanks @CHESSMASTER7940
I've added 10.000 positions from the database commented above. You can access and play them under the menu "Checkmate in...".
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 (https://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 https://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.
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 (https://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 https://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: https://gist.github.com/supertorpe/3cb7b3416029a149a441d76dc3c97f2a and https://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. https://chess-endgame-trainer.mooo.com/position/1/4/3 ).
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: https://gist.github.com/supertorpe/3cb7b3416029a149a441d76dc3c97f2a and https://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. https://chess-endgame-trainer.mooo.com/position/1/4/3 ).