Générateur FEN Endgame

10

est-il possible de générer des chaînes FEN pour les finales en fonction de critères spécifiques: n-pièces, w / d / l et côté à déplacer?

Disons que je voulais toutes les chaînes FEN pour les finales King plus Rook vs King plus Pawn (KPKR), où il est blanc de se déplacer, et des tirages blancs avec un jeu parfait.

Je sais qu'il y aurait un nombre extrêmement élevé de résultats, et la prochaine étape serait de classer ces résultats davantage selon d'autres critères, comme par exemple le roi blanc est devant le pion, ou le pion noir a passé le 6e rang.

Je suppose qu'une base de table de fin de jeu (egtb) contient déjà ces informations, mais comment les extraire? Ou existe-t-il un autre moyen de générer cela?

Merci!!

Dan Forbes
la source

Réponses:

1

Tout d'abord, la notation FEN est utilisée pour décrire un état ou une permutation de carte, et non une famille d'états ou de permutations de carte.

Ce dont vous parlez, c'est un moyen d'indexer les positions du conseil en fonction de vos critères. c'est-à-dire Rook vs Knight end games ou autre

Cela peut être fait par la plupart des logiciels de base de données (Fritz, Chessbase). Cela se fait en recherchant les jeux dans la base de données et en les retirant en fonction des positions du plateau.

Par exemple, si je veux obtenir un tas de jeux finaux tour contre chevalier, je peux rechercher toutes les chaînes FEN qui ne contiennent que K, k, p, P, r, R, n, N. Fondamentalement, les positions qui contiennent des pions, des chevaliers, des tours et des rois.

Comme pour egtb, le format est stocké en utilisant des bases de bits et les positions sont affectées à un index unique. Je suppose que c'est ainsi que Chess Position Trainer stocke ses cordes FEN afin de déterminer les transpositions.

Yusuf Ali
la source
1
Merci pour la réponse! Je sais que la base d'échecs peut exécuter ces recherches, le problème est que la base de données utilise de vrais jeux, ce qui signifie naturellement qu'il y a des erreurs dans le jeu (par exemple, une position qui devrait être gagnée avec des résultats de jeu parfaits dans un match nul ou même une perte en raison d'un jeu inférieur). Je voudrais pouvoir en quelque sorte faire exactement la même recherche d'un egtb ou avoir un moyen d'obtenir un egtb pour générer une chaîne de positions. Cela a-t-il du sens?
Dan Forbes
0

Le moyen le plus simple serait de commencer par un programme d'échecs avec une capacité de base de table et d'ajouter une routine qui générerait toutes les positions possibles d'une classe de fin de jeu donnée et produirait celles qui avaient des scores de base de table correspondant aux critères de sélection.

Trivia: Un exemple de KRKP:

Longest mate score (BTM): MateIn43
Sample BTM longest mating position: 8/8/8/8/5R2/2pk4/5K2/8 b - - 0 1

Optimal move sequence from the above BTM longest mating position:

1... c2 2. Rf3+ Kd4 3. Rf4+ Kd5 4. Rf5+ Kc6 {Kd6} 5. Rf8 Kb7 {Kc7} 6. Rf7+ Kb6
7. Rf6+ Kb5 8. Rf5+ Kb4 9. Rf4+ Kb3 10. Rf3+ Kb2 11. Ke3 {Rf8} c1=Q+ 12. Kd4
Qc6 {Qc7 Qc8 Qd2+ Qe1 Qg1+ Qg5 Qh6} 13. Re3 Kc2 {Qb6+ Qd6+ Qf6+} 14. Re2+ Kb3
15. Re3+ Kb4 16. Ke5 Kc4 17. Re4+ Kd3 18. Rd4+ Ke3 19. Rd6 Qe4+ 20. Kf6 Kf4 21.
Re6 Qb4 {Qc2} 22. Kf7 Qb7+ {Qc3 Qc4} 23. Ke8 Kf5 {Qc7} 24. Rd6 Ke5 {Qc8+} 25.
Rd7 {Rh6} Qa8+ {Qb3 Qb5 Qc8+} 26. Kf7 Qc6 27. Re7+ Kf5 28. Kf8 {Kg8} Qd5 29.
Ke8 {Kg7} Qg8+ 30. Kd7 Kf6 31. Re8 Qf7+ 32. Kd8 Qb7 33. Re1 Qb4 34. Re2 {Re8}
Kf7 {Qa5+ Qb6+ Qb8+ Qd4+ Qd6+} 35. Kc7 {Kd7 Ra2 Rc2 Rf2+ Rg2} Qc4+ 36. Kd6 Qxe2
37. Kd5 Ke7 {Qd1+ Qd2+ Qd3+ Qe3 Qg4} 38. Kc5 Kd7 {Ke6 Qd2 Qd3 Qe3+ Qe4} 39. Kb4
{Kd4 Kd5} Qd3 {Qe3} 40. Ka4 {Kc5} Kc6 {Kc7 Kd6 Qb1} 41. Kb4 Kb6 42. Ka4 Kc5 43.
Ka5 Qa3# {Qb5#}
ChessNotation
la source