ตอนนี้ฉันเชื่อว่าคำตอบของ Fabian Fichterนั้นถูกต้อง ความเห็นต่อไปนี้เกี่ยวกับคำตอบของเฟเบียนอาจช่วยโน้มน้าวผู้อื่นในแบบเดียวกัน
1. ตำแหน่งที่ดูเหมือนว่าจะได้รับผลกระทบจากการลบการส่งเสริมการขายลูกไก่
การวิเคราะห์ผลลัพธ์ที่โพสต์จาก Stockfish ที่แก้ไขแล้วเกมทั้งหมดมาบรรจบกันอย่างรวดเร็วในตำแหน่งต่อไปนี้: 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 ก็เล่นC*a4วางลูกไก่ไว้ที่มุมล่างซ้าย ตอนแรกฉันคิดว่านี่เป็นการตกที่ไร้ประโยชน์ แต่ตามฐานของตารางแล้วมันไม่เลวเลย
1. C  *a4
  ABC 
 +---+
1| l | *c
2|ge |
3| E |
4|CLG| 
 +---+
ตอนนี้สิ่งที่น่าสนใจเกิดขึ้น ฐานโต๊ะเห็นด้วยกับ Stockfish ที่ก้าวสิงโตไปด้านข้างเป็นรูปวาด แต่สิ่งที่เกี่ยวกับการทิ้งลูกไก่เพื่อต่อสู้กับลูกไก่?
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| *
 +---+
ตอนนี้ลูกไก่อยู่a3ห่างเพียงหนึ่งก้าวจากการโปรโมตและยิ่งไปกว่านั้นก็ให้ตรวจสอบการส่งเสริมซึ่งจะบังคับให้สิงโต Sente นำมันไป ปัญหาเดียวก็คือการย้ายที่ดีที่สุดเกี่ยวข้องกับการสูญเสียลูกไก่a3และเราก็ยังค่อนข้างห่างไกลจากการรุกฆาต ดังนั้นเราจะต้องใช้เวลาเล็กน้อยในการตัดสั้น ๆ เช่นที่เราสูญเสียได้เร็วขึ้น แต่ไม่สูญเสียด้วยเหตุผลอื่น ๆ เช่นการให้วัสดุที่ไม่จำเป็น
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
 +---+
ดูเหมือนว่าเราจะประสบความสำเร็จในการรักษาภัยคุกคามของเจี๊ยบที่เสียสละเพื่อโปรโมตดังนั้นขอต่อไป!
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%)
และนั่นก็คือลูกเจี๊ยบที่เสียสละโปรโมตว่าเป็นท่าที่ดีที่สุด! มาดูกันว่าเกิดอะไรขึ้น
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%)
ตอนนี้เรามาดูกันว่าจะเกิดอะไรขึ้นถ้าเราเปลี่ยนไก่ตัวนั้นเป็นไก่:
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%)
ในตำแหน่งนี้การย้ายที่ดีที่สุดทำให้รุกฆาต 88 (90-2) ย้ายออกไปซึ่งอยู่ไกลจากรุกฆาตมากกว่าตำแหน่งเริ่มต้นทำให้เป็นไปได้ว่าเมื่อวิเคราะห์แล้วมันจะนำไปสู่ตำแหน่งอื่นที่ไม่มีการส่งเสริมพลังลูกไก่ คู่ครองก่อนหน้านี้ (ad infinitum) ถ้าเป็นจริงที่จะทำให้ตำแหน่ง G / --- / le- / cG- / CLG / E (ดูด้านล่าง) วาดแทนการชนะโดยไม่ต้องโปรโมชั่นเจี๊ยบ
  ABC 
 +---+
1|   | *e
2|le |
3|cG |
4|CLG| 
 +---+
2. ความถูกต้องของการค้นหาอย่างละเอียด
สมมติว่าเครื่องกำเนิดตารางพื้นฐานที่ใช้เป็นการค้นหาที่ถูกต้องแล้วดูเหมือนว่าโปรแกรมปรับปรุงของ Fabian ควรประสบความสำเร็จในการปิดใช้งานการส่งเสริมการขายลูกไก่เนื่องจากไฟล์moves.cเป็นสถานที่เดียวที่POS_FLAGSใช้ (ยกเว้นการใช้ในvalidation.cการตรวจสอบตำแหน่งของโครงสร้าง) เพื่อปิดการใช้งานโปรโมชัน
/* clear promotion bits for pieces that can't be promoted */
status &= POS_FLAGS;