Generador FEN de fin de juego

10

¿Es posible generar cadenas FEN para finales basadas en criterios específicos: n-piezas, w / d / l y lado para mover?

Digamos que quería todas las cuerdas FEN para los finales de King plus Rook vs King plus Pawn (KPKR), donde es blanco para moverse y sorteos blancos con juego perfecto.

Sé que habría un número extremadamente grande de resultados, y el siguiente paso sería clasificar esos resultados aún más por otros criterios, como decir que el rey blanco está delante del peón, o el peón negro ha pasado el sexto rango.

Supongo que una base de tabla de final de juego (egtb) ya tiene esta información almacenada, pero ¿cómo obtener esta información? ¿O hay alguna otra forma de generar esto?

¡¡Gracias!!

Dan Forbes
fuente

Respuestas:

1

En primer lugar, la notación FEN se usa para describir un estado o permutación de la placa, no una familia de estados o permutaciones de la placa.

De lo que estás hablando es de una manera de indexar las posiciones de la junta en función de tus criterios. es decir, juegos finales de Rook vs Knight o similares

La mayoría de los softwares de bases de datos (Fritz, Chessbase) pueden hacerlo. Esto se hace buscando juegos en la base de datos y sacándolos según las posiciones del tablero.

Por ejemplo, si quiero obtener un montón de juegos finales de torre contra caballero, puedo buscar todas las cadenas de FEN que contengan solo K, k, p, P, r, R, n, N. Básicamente, posiciones que contienen peones, caballeros, torres y reyes.

En cuanto a egtb, el formato se almacena utilizando bases de bits y las posiciones se asignan a un índice único. Supongo que así es como Chess Position Trainer almacena sus cadenas FEN para determinar las transposiciones.

Yusuf Ali
fuente
1
¡Gracias por la respuesta! Sé que Chessbase puede ejecutar esas búsquedas, el problema es que la base de datos usa juegos reales, lo que naturalmente significa que hay errores en el juego (por ejemplo, una posición que se debe ganar con resultados perfectos en un empate o incluso una pérdida debido a un juego inferior). Me gustaría poder hacer exactamente la misma búsqueda de un egtb o tener alguna forma de obtener un egtb para generar una serie de posiciones. ¿Tiene sentido?
Dan Forbes
0

La forma más directa sería comenzar con un programa de ajedrez con capacidad de base de tabla y agregar una rutina que generaría todas las posiciones posibles de una clase de final de juego dada y generaría aquellas que tuvieran puntuaciones de base de tabla que coincidan con los criterios de selección.

Trivia: Un ejemplo 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#}
AjedrezNotación
fuente