Endgame FEN generator


10

è possibile generare stringhe FEN per i giochi finali in base a criteri specifici: n-pezzi, p / d / le lato da spostare?

Quindi diciamo che volevo tutte le corde FEN per i giochi finali King plus Rook vs King plus Pawn (KPKR), dove è bianco da muovere, e il bianco disegna con un gioco perfetto.

So che ci sarebbe un numero estremamente elevato di risultati, e il passo successivo sarebbe quindi categorizzare ulteriormente quei risultati in base ad altri criteri, come dire che il re bianco è di fronte al pedone o che il pedone nero ha superato il sesto grado.

Presumo che un tablebase endgame (egtb) abbia già memorizzato queste informazioni, ma come ricavarle? O c'è qualche altro modo di generare questo?

Grazie!!

Risposte:


1

In primo luogo, la notazione FEN viene utilizzata per descrivere uno stato o permutazione della scheda, non una famiglia di stati o permutazioni della scheda.

Quello di cui stai parlando è un modo per indicizzare le posizioni del consiglio di amministrazione in base ai tuoi criteri. cioè Rook vs Knight o giochi simili

Questo può essere fatto dalla maggior parte dei software di database (Fritz, Chessbase). Questo viene fatto cercando i giochi nel database ed estraendoli in base alle posizioni del tabellone.

Ad esempio, se voglio ottenere un sacco di giochi di corvo vs cavaliere, posso cercare tutte le stringhe FEN che contengono solo K, k, p, P, r, R, n, N. Fondamentalmente, posizioni che contengono pedine, cavalieri, corvi e re.

Per quanto riguarda egtb, il formato è memorizzato usando bit base e le posizioni sono assegnate a un indice univoco. Suppongo che sia così che Chess Position Trainer memorizza le sue stringhe FEN per determinare le trasposizioni.


1
Grazie per la risposta! So che chessbase può eseguire quelle ricerche, il problema è che il database utilizza giochi reali, il che significa naturalmente che ci sono errori nel gioco (diciamo che una posizione che dovrebbe essere vinta con risultati di gioco perfetti in pareggio o addirittura una perdita a causa di un gioco inferiore). Vorrei poter in qualche modo fare esattamente la stessa ricerca di un egtb o avere un modo per ottenere un egtb per generare una serie di posizioni. Ha senso?
Dan Forbes il

0

Il modo più semplice sarebbe quello di iniziare con un programma di scacchi con capacità di tablebase e aggiungere una routine che generasse ogni possibile posizione di una data classe di endgame e generasse quelli che avevano punteggi di tablebase corrispondenti ai criteri di selezione.

Curiosità: un esempio da 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#}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.