Oyunsonu FEN jeneratörü


10

Belirli ölçütlere göre bitiş oyunları için FEN dizeleri oluşturmak mümkün müdür: n-adet, w / d / l ve hareket ettirilecek taraf?

Diyelim ki King artı Rook vs King artı Piyon (KPKR) için tüm FEN dizeleri, hareket etmenin beyaz olduğu ve beyazın mükemmel bir oyunla çizildiği.

Son derece fazla sayıda sonuç olacağını biliyorum ve bir sonraki adım, bu sonuçları beyaz kralın piyonun önünde olduğu veya siyah piyonun 6. sırada geçtiği gibi diğer kriterlere göre daha fazla sınıflandırmak olacaktır.

Bir oyunsonu tablebase (egtb) zaten bu bilgileri saklı olduğunu varsayalım, ama bu bilgileri onlardan nasıl alabilirim? Yoksa bunu üretmenin başka bir yolu var mı?

Teşekkürler!!

Yanıtlar:


1

İlk olarak, FEN gösterimi, bir yönetim kurulu devletleri veya permütasyon ailesi değil, bir yönetim kurulu devletini veya permütasyonunu tanımlamak için kullanılır.

Bahsettiğiniz şey, kriterlerinize göre pano konumlarını endekslemenin bir yoludur. yani Rook vs Knight sonu oyunları vb.

Bu, çoğu veritabanı yazılımı (Fritz, Chessbase) tarafından yapılabilir. Bu, veritabanındaki oyunları arayarak ve tahta konumlarına göre dışarı çekerek yapılır.

Örneğin, şövalye sonu oyunlarına karşı bir sürü kale almak istiyorsam, sadece K, k, p, P, r, R, n, N içeren tüm FEN dizelerini arayabilirim. Temel olarak, piyonlar, şövalyeler, kaleler ve krallar içeren pozisyonlar.

Egtb'ye gelince, biçim bit tabanları kullanılarak saklanır ve konumlar benzersiz bir dizine atanır. Ben satranç Pozisyon Eğitmeni transpozisyonları belirlemek için FEN dizelerini bu şekilde saklar.


1
Cevabınız için teşekkürler! Ben satranç üssü bu aramaları çalıştırabilir biliyorum, sorun veritabanı doğal oyun kullanır ki bu doğal olarak oyunda hatalar anlamına gelir (bir beraberlik mükemmel oyun sonuçları ile kazanılması gereken bir pozisyon veya alt oyun nedeniyle bile kaybı demek). Bir şekilde bir egtb tam olarak aynı arama yapmak veya bir dizi pozisyonlar oluşturmak için bir egtb elde etmek için bir yol var edebilmek istiyorum. bu mantıklı mı?
Dan Forbes

0

En basit yol, masa tabanı kabiliyetine sahip bir satranç programıyla başlamak ve belirli bir oyunsonu sınıfının olası her pozisyonunu oluşturacak ve seçim kriterleri ile eşleşen masa tabanı puanlarına sahip olanları çıkaracak bir rutin eklemek olacaktır.

Diğer bilgiler: KRKP'den bir örnek:

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#}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.