Another way of looking at these "problem-positions" is calculating their capture-perfts for different depths. For this I replaced in the perft-routine the funcion generate() by generate_captures() as used in qs (only captures and promotions to a queen are generated).
[d] rr4k1/bb2q3/p1n1p3/3p3p/1P1PnppN/P1NQ3P/3B1PP1/2RBR1K1 w - - 2 28
Code: Select all
1 8
2 66
3 521
4 3,619
5 26,816
6 167,455
7 1,101,130
8 6,223,305
9 34,612,088
0 173,570,758
11 792,938,194
[d] 3rnbk1/2q5/p2r1ppp/1p3pP1/PP1n3P/2NB4/2PB1R1Q/4R1K1 b - - 1 28
Code: Select all
1 5
2 45
3 283
4 2,385
5 15,795
6 120,904
7 745,102
8 4,995,007
9 26,091,105
10 146,935,384
11 597,170,806
[d] r1bq1rk1/1p1n1pp1/2pb3p/p1Npp3/1PPPn3/P3PN2/3BBPPP/R2Q1RK1 b - - 1 13
Code: Select all
1 8
2 56
3 376
4 2,316
5 14,085
6 79,134
7 432,137
8 2,242,959
9 10,894,645
10 51,925,039
11 222,211,044
When you perft deeper the numbers eventually stop growing, because the position runs out of captures.