Già una buona risposta qui, ma cerco di evidenziare il problema da un punto di vista leggermente diverso. Quando si intende implementare un'analisi retrograda completa per KBBK, è necessario generare tutte posizioni KBBK, che sono inferiori a 32 * 32 * 62 * 61 * 2. Il "32" è il numero di quadrati per i vescovi, il "* 2" tiene conto del giocatore che si sposta dopo; e non tutti i 32 * 32 * 62 * 61 posizionamenti teorici dei quattro pezzi sono legali (ovviamente, puoi escludere qualsiasi posizione in cui i re hanno una distanza posizionale < 2).
Per l'analisi, prendi queste posizioni come i vertici di un grafico diretto, ei bordi sono le transizioni legali da una posizione all'altra (in base alle mosse possibili).
Ora, segna le posizioni in cui il bianco si sposta e il re nero potrebbe essere catturato da un alfiere bianco. Tecnicamente, catturare il re non è legale secondo le classiche regole di scacchi, ma lascia supporre per un momento che fosse legale e chiamare queste posizioni "compagno in -1". Le posizioni "mate in 0" sono quindi i vertici nel grafico in cui il nero si muove successivamente, avendo solo "mate in -1", e dove il re nero è già controllato (quando ci sono solo "mate in -1" -successori e il re nero non è controllato, è una situazione remis).
Più in generale, una posizione in cui il nero si sposta dopo è un "compagno in x + 1", quando x è il massimo di tutti y tra i successori nel grafico con una posizione "matto in y", e non ci sono remis situazione. Quando il nero si muove dopo e c'è almeno una posizione remoti tra i successori, anche la posizione corrente è una situazione remis. Una posizione in cui le mosse bianche successive sono "mate in x + 1", quando x è il minimo di tutte le y tra i successori con una posizione di "matto in y" (indipendentemente dalle posizioni di remis). Quando il bianco si sposta dopo, una posizione è solo una posizione remis quando tutti i successori sono anche posizioni remis.
Quindi le posizioni di "compagno in 0" possono essere identificate semplicemente applicando la prima fase dell'analisi retrograda.