The position is this:
1r4k1/5ppp/2Q5/2p1qP2/6n1/3Br1P1/2P4P/RR4K1 b - - 0 27
This is the sequence of commands and output with TT enabled:
Code: Select all
st 5
go
ply score time nodes pv
--- ----- ------ --------- -------------------------------------------------
1 113 45 1762 1. ... Rb4 2. Rxb4 cxb4
2 -M04 45 2062 1. ... Rb4 2. Ra8+ Qb8 3. Rxb8+ Rxb8 4. Rxb8+ Re8 5. Rxe8#
2 -288 46 2186 1. ... Rxg3+ 2. hxg3 Qxg3+ 3. Kh1
2 -154 46 2688 1. ... Rxd3 2. Rxb8+ Qxb8 3. cxd3
2 -82 46 2931 1. ... Nxh2 2. Rxb8+ Qxb8 3. Kxh2 Qxg3+ 4. Kh1
2 108 47 3220 1. ... Rxb1+ 2. Rxb1 Re1+ 3. Rxe1 Qxe1+ 4. Kg2
3 108 48 3900 1. ... Rxb1+ 2. Rxb1 Re1+ 3. Rxe1 Qxe1+ 4. Kg2
4 136 53 10385 1. ... Rxb1+ 2. Rxb1 Re1+ 3. Rxe1 Qxe1+ 4. Kg2 Qf2+ 5. Kh3 Nxh2
5 58 81 59579 1. ... Rxb1+ 2. Rxb1 Qd4 3. Kg2 Qd8 4. Qxc5
5 143 119 134289 1. ... Qd4 2. Rxb8+ Re8+ 3. Kg2 Ne3+ 4. Kf3 Rxb8 5. Ra7
6 115 130 157922 1. ... Qd4 2. Rxb8+ Re8+ 3. Kg2 Ne3+ 4. Kf3 Rxb8 5. Ra8 Rf8
7 55 289 504507 1. ... Qd4 2. Rxb8+ Re8+ 3. Kg2 Ne3+ 4. Kf3 Rxb8 5. Re1 c4 6. Rxe3 cxd3 7. Rxd3
move Qd4
Rxb8
ply score time nodes pv
--- ----- ------ --------- -------------------------------------------------
1 142 20 41 2. ... Re8+ 3. Kg2 Rxb8 4. Ra8 Rf8 5. Rxf8+ Kxf8 6. Qa8+
2 55 21 44 2. ... Re8+ 3. Kg2 Ne3+ 4. Kf3 Rxb8 5. Re1 c4 6. Rxe3 cxd3
3 55 22 48 2. ... Re8+ 3. Kg2 Ne3+ 4. Kf3 Rxb8 5. Re1 c4 6. Rxe3 cxd3
4 55 22 52 2. ... Re8+ 3. Kg2 Ne3+ 4. Kf3 Rxb8 5. Re1 c4 6. Rxe3 cxd3
5 55 23 56 2. ... Re8+ 3. Kg2 Ne3+ 4. Kf3 Rxb8 5. Re1 c4 6. Rxe3 cxd3
6 55 23 60 2. ... Re8+ 3. Kg2 Ne3+ 4. Kf3 Rxb8 5. Re1 c4 6. Rxe3 cxd3
7 55 24 64 2. ... Re8+ 3. Kg2 Ne3+ 4. Kf3 Rxb8 5. Re1 c4 6. Rxe3 cxd3
8 -M02 35 33833 2. ... Qd8?? 3. Rxd8+ Re8 4. Rxe8#
move Qd8
Code: Select all
st 5
go
ply score time nodes pv
--- ----- ------ --------- -------------------------------------------------
1 113 1 1762 1. ... Rb4 2. Rxb4 cxb4
2 -M04 1 2097 1. ... Rb4 2. Ra8+ Qb8 3. Rxb8+ Rxb8 4. Rxb8+ Re8 5. Rxe8#
2 -288 2 2221 1. ... Rxg3+ 2. hxg3 Qxg3+ 3. Kh1
2 -154 2 2727 1. ... Rxd3 2. Rxb8+ Qxb8 3. cxd3
2 -82 2 3025 1. ... Nxh2 2. Rxb8+ Qxb8 3. Kxh2 Qxg3+ 4. Kh1
2 108 3 3377 1. ... Rxb1+ 2. Rxb1 Re1+ 3. Rxe1 Qxe1+ 4. Kg2
3 108 4 4124 1. ... Rxb1+ 2. Rxb1 Re1+ 3. Rxe1 Qxe1+ 4. Kg2
4 136 7 12252 1. ... Rxb1+ 2. Rxb1 Re1+ 3. Rxe1 Qxe1+ 4. Kg2 Qf2+ 5. Kh3 Nxh2
5 58 34 85903 1. ... Rxb1+ 2. Rxb1 Qd4 3. Kg2 Qd8 4. Qxc5
5 143 67 184468 1. ... Qd4 2. Rxb8+ Re8+ 3. Kg2 Ne3+ 4. Kf3 Rxb8 5. Ra7
6 115 84 221914 1. ... Qd4 2. Rxb8+ Re8+ 3. Kg2 Ne3+ 4. Kf3 Rxb8 5. Ra8 Rf8
7 115 557 1175379 1. ... Qd4 2. Rxb8+ Re8+ 3. Kg2 Ne3+ 4. Kf3 Rxb8 5. Ra8 Rf8
move Qd4
Rxb8
ply score time nodes pv
--- ----- ------ --------- -------------------------------------------------
1 142 0 87 2. ... Re8+ 3. Kg2 Rxb8
2 142 0 107 2. ... Re8+ 3. Kg2 Rxb8
3 157 1 250 2. ... Re8+ 3. Kg2 Ne3+ 4. Kf2 Rxb8
4 177 1 969 2. ... Re8+ 3. Kg2 Ne3+ 4. Kf3 Rxb8
5 143 5 3405 2. ... Re8+ 3. Kg2 Ne3+ 4. Kf3 Rxb8 5. Ra7
6 115 31 40074 2. ... Re8+ 3. Kg2 Ne3+ 4. Kf3 Rxb8 5. Ra8 Rf8
7 46 175 295442 2. ... Re8+ 3. Kg2 Ne3+ 4. Kf3 Qg4+ 5. Kf2 Rxb8 6. Ra8 Nd1+ 7. Kg1 Rxa8 8. Qxa8#
8 27 355 626849 2. ... Re8+ 3. Kg2 Rxb8 4. Ra8 Qd8 5. Rxb8 Qxb8 6. Qxc5 Qb7+ 7. Kg1 Qb1+ 8. Bf1
9 27 537 907597 2. ... Re8+ 3. Kg2 Rxb8 4. Ra8 Qd8 5. Rxb8 Qxb8 6. Qxc5 Qb7+ 7. Kg1 Qb1+ 8. Bf1
move Re8+
Any cloud of what could be the problem?
I think maybe is about mate score in qsearch. As you can see in the last output for 7 depth, the line is a 46 score, where the true is that it is a mate. This is because my qsearch function dont generate at all moves for check. My qsearch routine only generate checks in the qsearch for the first plys and there is a limit in qnodes too. Well, I think the problem is because that, not sure....
This lead me to think what is the proper way to store exact values in hash table when the search is from a non-check qsearch. any ideas?