Digamos que tienes una base de datos de muchos juegos.
¿Cómo harías para encontrar buenos problemas tácticos? Supongo que buscaría hasta que hubiera un lugar donde el puntaje cambiara, y solo hubiera un buen movimiento en el movimiento anterior. Pero esa no es toda la historia, a veces es necesario retroceder un par de movimientos para descubrir dónde comenzó realmente la táctica.
Por ahora, las ideas de cómo hacer esto manualmente están bien (con la ayuda de un motor de análisis), pero la idea es automatizar este proceso.
Un enfoque podría ser pasar por todos los movimientos de un juego de alto nivel, y si la evaluación del motor cambia significativamente, entonces guarde la posición para revisión humana.
En este caso, "significativamente" es probablemente la mitad de un peón o más, aunque también podría requerir que sea un peón completo para tácticas más fáciles.
La razón detrás de solo mirar juegos de alto nivel es que la puntuación realmente solo cambiará significativamente con un error. Los juegos de alto nivel no tendrán errores obvios (es decir, colgar una pieza), por lo que los errores posiblemente serán una táctica no tan obvia.
Esto no será perfecto, pero podría obtener algunas posiciones que vale la pena mirar "a mano".
Solo una nota más: si permite que el motor de ajedrez busque a una profundidad suficiente (14-16 en la mayoría de las posiciones debería ser bueno), entonces no tendrá que preocuparse por perderse el comienzo de la táctica. Los motores podrán ver la mayoría de las tácticas, incluso si son complicadas.
Si desea encontrar juegos extremadamente tácticos, comience mirando jugadores extremadamente tácticos (Alekhine, Tal y Fischer y cualquier otro tipo loco de ajedrez que le guste).
El segundo mejor sería los juegos entre cualquier gran maestro, independientemente del siglo en que se jugó el juego. Las tácticas de ajedrez casi siempre aparecen incluso en los juegos más posicionales.
Si quieres encontrar tácticas que ganen desde el principio, busca miniaturas (juegos que terminan en una victoria en, digamos, menos de 30 movimientos).
Hay sitios que permiten a los usuarios guardar colecciones de ajedrez ( chessgames.com es un ejemplo, hay algunos buenos resultados si busca tácticas o jugadores famosos). Pero dijo que tiene una base de datos en la que desea buscar, por lo que es posible que no le interese.
Además, no involucra su base de datos de ajedrez, podría encontrar mucha variedad de tácticas en libros escritos por entrenadores de ajedrez o en listas de reproducción de video creadas por entrenadores de ajedrez (mi ejemplo favorito aquí sería MatoJelic , pero hay muchos más).
Si desea encontrar juegos que involucren muchas capturas, busque la cantidad de xocurrencias (si tiene una base de datos con juegos en PGN y conoce expresiones regulares que podría buscar ocurrencias xen movimientos consecutivos, pero eso no lo conseguirá valor suficiente para el esfuerzo, por lo que no lo recomendaría).
Lo que no puedes encontrar son tácticas que se evitan. Al menos no puedes encontrarlos mirando los movimientos del juego solo. Necesitarás un humano que diga ¿y si ...? , luego haga el movimiento, luego verifique con una computadora.
Supongo que podría haber formulado mi pregunta con mayor claridad, pero lo que quise decir es que quería sacar posiciones específicas que implican tácticas de mi base de datos, para presentarlas como problemas interesantes (me parece que chesstempo debe usar algo como esto para encontrar sus problemas tácticos).
Eve Freeman
1
Supongo que podría haber formulado mi pregunta con mayor claridad, pero lo que quise decir es que quería sacar posiciones específicas que implican tácticas de mi base de datos, para presentarlas como problemas interesantes (me parece que ChessTempo debe usar algo como esto para encontrar sus problemas tácticos).
Solo estoy haciendo una lluvia de ideas aquí, pero como programador, puedo ver una manera de hacerlo. Obtenga Stockfish y escriba una solicitud que le envíe el puesto. Guarde las evaluaciones, y cuando la evaluación cambie significativamente (lo que sea que eso signifique lol), guarde esa posición como FEN junto con la "solución". Tengo la mayor parte del código para hacer el trabajo duro, no creo que sea difícil escribir esto. Simplemente no tengo el interés como pasatiempo de hacer esto.
¿Cómo se obtienen los puestos para presentar a Stockfish? Para eso, itera en un archivo que contiene muchos juegos formateados PGN y genera el FEN para cada posición de tablero virtual. Ya he escrito un código similar en C # y Java.
¡Agradable! ¿Su enfoque está ahorrando cada posición de FEN en un juego y usándolo como base de datos? No creo que chessTempo vaya tan lejos, pero esta es una idea ambiciosa si eso es lo que estás haciendo. Creo que va a ser extremadamente grande con muchos juegos. Pero si todo lo que quiere es extraer problemas tácticos para presentar a`la ChessTempo, no creo que necesite las consultas.
ezaspi
Lo que quiero, como jugador de ajedrez, es algo que su trabajo pueda resolver. Todos queremos mejorar nuestro juego. Si puedo alimentar todos mis juegos a su programa y hacer que clasifique mis errores, podría entender mejor dónde necesito mejorar. Chess.com rastrea su historial de tácticas y hace algo similar. Pero muchas de sus tácticas no son realistas para mí. ¡Su programa sería mucho más personal!
ezaspi
Una cosa más, si observa CTART (google it, IMO, la mejor base de datos de problemas tácticos), encontrará que el desarrollador tomó las posiciones de los juegos reales. ¡Incluso hace referencia a los juegos! Sin embargo, para evitar el problema de los derechos de autor, elimina un solo peón que no tiene importancia para la posición. Dada la gran cantidad de juegos que tiene CTArt, uno puede apreciar que el esfuerzo fue enorme. Obtenga una copia en Amazon. :)
ezaspi
Frio. He registrado el dominio chessgraph.org, aunque todavía no hay nada. Espero obtener algo donde pueda enviar PGNs y que el juego sea analizado por stockfish, y que los juegos estén conectados por sus posiciones FEN. Veremos qué tan rápido explota. :)
Solo estoy haciendo una lluvia de ideas aquí, pero como programador, puedo ver una manera de hacerlo. Obtenga Stockfish y escriba una solicitud que le envíe el puesto. Guarde las evaluaciones, y cuando la evaluación cambie significativamente (lo que sea que eso signifique lol), guarde esa posición como FEN junto con la "solución". Tengo la mayor parte del código para hacer el trabajo duro, no creo que sea difícil escribir esto. Simplemente no tengo el interés como pasatiempo de hacer esto.
¿Cómo se obtienen los puestos para presentar a Stockfish? Para eso, itera en un archivo que contiene muchos juegos formateados PGN y genera el FEN para cada posición de tablero virtual. Ya he escrito un código similar en C # y Java.
fuente