Jestem teraz przekonany, że odpowiedź Fabiana Fichtera jest poprawna. Poniższy komentarz do odpowiedzi Fabiana może pomóc przekonać innych o tym samym.
1. Pozycja, na którą wydaje się mieć wpływ usunięcie promocji piskląt
Analizując opublikowane wyniki zmodyfikowanego Sztokfiszka, wszystkie gry dość szybko zbiegają się w następującej pozycji: S / -l- / ge - / - E - / - LG / cC.
$ ./dobutsu -vs900
Loading tablebase... done
1. setup S/-l-/ge-/-E-/-LG/cC
1. show board
ABC
+---+
1| l | c
2|ge |
3| E |
4| LG| *C
+---+
1. show lines
Eb3xa2 : #-72 (67.13%)
C *a4 : #-70 (32.87%) <--- apparently quite strong
Gc4-c3 : #-46 ( 0.00%)
C *c2 : #-36 ( 0.00%)
C *c1 : #-28 ( 0.00%)
Eb3-a4 : #-26 ( 0.00%)
Lb4-a4 : #-26 ( 0.00%)
C *a1 : #-24 ( 0.00%)
C *c3 : #-22 ( 0.00%)
C *a3 : #-20 ( 0.00%)
Eb3-c2 : #-12 ( 0.00%)
Lb4-c3 : #-2 ( 0.00%)
Lb4-a3 : #-2 ( 0.00%)
Sente następnie gra C*a4
, upuszczając pisklę w lewym dolnym rogu. Początkowo myślałem, że to dość marnotrawny spadek, ale według podstawy stołu wcale nie jest tak źle.
1. C *a4
ABC
+---+
1| l | *c
2|ge |
3| E |
4|CLG|
+---+
Teraz dzieje się coś ciekawego. Podstawa stołu zgadza się ze Sztokfiszem, że przesunięcie Lwa na bok to remis, ale co z rzuceniem pisklęcia do walki z pisklakiem?
2. show lines
C *a3 : #69 (99.57%) <--- winning chick drop
C *c2 : #91 ( 0.21%)
C *c1 : #91 ( 0.21%)
C *a1 : 0 ( 0.00%)
Ga2-a1 : 0 ( 0.00%)
Eb2-c1 : 0 ( 0.00%)
Eb2-a1 : 0 ( 0.00%)
Lb1-a1 : 0 ( 0.00%) <--- draws the game
C *c3 : #-28 ( 0.00%)
Lb1-c1 : #-22 ( 0.00%)
Eb2-c3 : #-20 ( 0.00%)
Eb2-a3 : #-20 ( 0.00%)
Ga2-a3 : #-18 ( 0.00%)
Lb1-c2 : #-2 ( 0.00%)
2. C *a3
ABC
+---+
1| l |
2|ge |
3|cE |
4|CLG| *
+---+
Teraz laska a3
jest o krok od promocji, a ponadto dałaby czek na promocję, co zmusiłoby lwa Sente do wzięcia go. Jedyny problem polega na tym, że najlepszy ruch polega na utracie pisklęcia, a3
a także, że wciąż jesteśmy daleko od mat. W związku z tym zamierzamy zastosować skrót, abyśmy tracili szybciej, ale nie tracąc z innych powodów, takich jak niepotrzebne rozdawanie materiałów.
3. show lines
Ca4xa3 : #-68 (92.84%) <--- catches chick about to promote
Gc4-c3 : #-62 ( 7.16%)
Eb3xa2 : #-32 ( 0.00%) <--- shortcut
Eb3-c2 : #-8 ( 0.00%) <--- give away elephant
Lb4-c3 : #-2 ( 0.00%) <--- stupid
Lb4xa3 : #-2 ( 0.00%) <--- stupid
3. Eb3xa2
ABC
+---+
1| l | *
2|Ee |
3|c |
4|CLG| G
+---+
4. show lines
Lb1xa2 : #31 (100.00%)
Lb1-c2 : #-10 ( 0.00%)
Lb1-c1 : #-6 ( 0.00%)
Lb1-a1 : #-6 ( 0.00%)
Ca3xa4+: #-2 ( 0.00%)
Eb2-c3 : #-2 ( 0.00%)
Eb2-c1 : #-2 ( 0.00%)
Eb2-a1 : #-2 ( 0.00%)
4. Lb1xa2
ABC
+---+
1| | e
2|le |
3|c |
4|CLG| *G
+---+
Wydaje się, że udało nam się zachować groźbę ofiarnej promocji pisklęcia, więc kontynuujmy!
5. show lines
G *b3 : #-30 (100.00%)
G *a1 : #-24 ( 0.00%)
G *c3 : #-20 ( 0.00%)
Gc4-c3 : #-18 ( 0.00%)
G *c2 : #-14 ( 0.00%)
G *c1 : #-10 ( 0.00%)
G *b1 : #-10 ( 0.00%)
Ca4xa3 : #-8 ( 0.00%)
Lb4-c3 : #-2 ( 0.00%)
Lb4-b3 : #-2 ( 0.00%)
Lb4xa3 : #-2 ( 0.00%)
5. G *b3
ABC
+---+
1| | *e
2|le |
3|cG |
4|CLG|
+---+
6. show lines
Ca3xa4+: #29 (100.00%) <--- sacrificial promoting chick check
E *c3 : #-30 ( 0.00%)
E *c1 : #-28 ( 0.00%)
Eb2-c1 : #-28 ( 0.00%)
Eb2-a1 : #-28 ( 0.00%)
La2-b1 : #-28 ( 0.00%)
La2-a1 : #-28 ( 0.00%)
E *c2 : #-26 ( 0.00%)
E *a1 : #-24 ( 0.00%)
E *b1 : #-12 ( 0.00%)
Eb2-c3 : #-12 ( 0.00%)
La2xb3 : #-2 ( 0.00%)
I oto jest ofiara promująca pisklę jako najlepszy ruch! Zobaczmy co się stanie.
6. Ca3xa4+:
ABC
+---+
1| | ce
2|le |
3| G |
4|rLG| *
+---+
7. show lines
Lb4xa4 : #-28 (100.00%) <--- take chick (forced if promoted)
Gc4-c3 : #-2 ( 0.00%)
Gb3-c3 : #-2 ( 0.00%)
Gb3-a3 : #-2 ( 0.00%)
Gb3xb2 : #-2 ( 0.00%)
Lb4-c3 : #-2 ( 0.00%)
Lb4-a3 : #-2 ( 0.00%)
Zobaczmy teraz, co się stanie, jeśli zmienimy koguta na pisklę:
7. setup S/---/le-/-G-/cLG/ec
1. show board
ABC
+---+
1| | ce
2|le |
3| G |
4|cLG| *
+---+
1. show lines
Gc4-c3 : #-90 (100.00%)
Gb3xb2 : #-30 ( 0.00%)
Lb4xa4 : #-28 ( 0.00%)
Gb3-c3 : #-10 ( 0.00%)
Gb3-a3 : #-8 ( 0.00%)
Lb4-c3 : #-2 ( 0.00%)
Lb4-a3 : #-2 ( 0.00%)
W tej pozycji najlepszy ruch stawia szatana 88 (90-2) odsuwa się, co jest bardziej oddalone od matowego niż pozycja początkowa, co sprawia, że prawdopodobne jest, że po analizie doprowadzi do innej pozycji, która bez promowania siły pisklęcia nagle znacznie dalej od kolega niż wcześniej (ad infinitum). Jeśli to prawda , pozycja G / --- / le- / cG- / CLG / e (patrz poniżej) to remis zamiast wygranej bez promocji piskląt .
ABC
+---+
1| | *e
2|le |
3|cG |
4|CLG|
+---+
2. Prawidłowość wyczerpujących poszukiwań
Zakładając, że użyty generator tabeli bazowej jest poprawnym, wyczerpującym wyszukiwaniem, wydaje się, że łatka Fabiana powinna skutecznie wyłączyć promocje piskląt, ponieważ plik moves.c
jest jedynym miejscem, które POS_FLAGS
jest używane (z wyjątkiem użycia validation.c
do sprawdzania struktur pozycji) i rzeczywiście wydaje się być specjalnie zaprojektowane wyłączyć promocje.
/* clear promotion bits for pieces that can't be promoted */
status &= POS_FLAGS;