Here is a loss by Hansel which stumped me.
Hansel has Q-Search and the following evaluation features:
1. Material weights
2. Piece square table weights
3. Penalty for double pawns and Isolated pawns.
4. Bonus for passed pawns.
5. Attackers near king's ring (x-rays passing through rooks and queens)
6. Tapered evaluation (stockfish's ideas and almost the code),
Just to try out, following is being used. Please note this is an older version
Code: Select all
while (bbWhiteQueenBlack > 0)
{
int sqFrom = Utilities.bitscan_forward(bbWhiteQueenBlack);
ulong occupancyQueenBishop = ~Defs.BB_EMPTY;
occupancyQueenBishop &= MagicBitBoards.BISHOP_ATTACK_INNER_MASK[sqFrom];
occupancyQueenBishop *= MagicBitBoards.BishopMagic[sqFrom];
occupancyQueenBishop >>= 64 - MagicBitBoards.BitForBishopAttack[sqFrom];
ulong movesQueenAttackingKingRing = (MagicBitBoards.BishopAttacks[sqFrom, occupancyQueenBishop] & occupancyPiecesBlack) & kingRingWhite;
queenAttackersBlack += Utilities.count_bits(movesQueenAttackingKingRing);
ulong occupancyQueenRook = ~Defs.BB_EMPTY;
occupancyQueenRook &= MagicBitBoards.ROOKS_ATTACK_INNER_MASK[sqFrom];
occupancyQueenRook *= MagicBitBoards.RookMagic[sqFrom];
occupancyQueenRook >>= 64 - MagicBitBoards.BitForRookAttack[sqFrom];
ulong movesQueenRookAttackingKingRing = (MagicBitBoards.RookAttacks[sqFrom, occupancyQueenRook] & occupancyPiecesBlack) & kingRingWhite;
queenAttackersBlack += Utilities.count_bits(movesQueenRookAttackingKingRing);
bbWhiteQueenBlack &= bbWhiteQueenBlack - 1;
}
// Compute the difference.
int whiteAttackCount = 2 * queenAttackers + 3 * rookAttackers + 4 * bishopAttackers;
int blackAttackCount = 2 * queenAttackersBlack + 3 * rookAttackersBlack + 4 * bishopAttackersBlack;
[Site "Local"]
[Date "2022.07.07"]
[Round "17"]
[White "Hansel 64bit"]
[Black "Tscp181"]
[Result "0-1"]
[BlackElo "2200"]
[ECO "D01"]
[Opening "Richter-Veresov, 3.Nf3"]
[Time "12:44:14"]
[Variation "1...d5"]
[WhiteElo "2200"]
[TimeControl "300"]
[Termination "adjudication"]
[PlyCount "103"]
[WhiteType "program"]
[BlackType "program"]
1. Nc3 d5 {(d7d5 d2d4 g8f6 g1f3 b8c6 e2e3 e7e6) 0.00/7 10} 2. d4 Nf6 {(g8f6
e2e3 b8c6 g1f3 e7e6 f1b5 c8d7) 0.00/7 9} 3. Nf3 e6 {(e7e6 e2e3 f8b4 f1d3
b4c3 b2c3 e8g8 e1g1) +0.08/7 9} 4. Bg5 {(Bc1-g5 Bf8-b4 e2-e3 O-O Bf1-d3
Nb8-c6 O-O Rf8-e8 Ra1-c1 Bc8-d7) 0.00/10 10} Bb4 {(f8b4 d1d2 b8c6 g5f6 d8f6
e2e3 b4c3 d2c3) 0.00/8 9} 5. Qd3 {0.00/11 9} O-O {(e8g8 e2e3 b8c6 f1e2 b4c3
d3c3 c8d7 e1c1) +0.05/7 8} 6. O-O-O {(O-O-O Bb4-e7 Rd1-d2 Nb8-c6 Kc1-b1
Nc6-b4 Qd3-b5 Nf6-g4 Bg5xe7 Qd8xe7) 0.00/10 9} Bxc3 {(b4c3 d3c3 f6e4 c3e3
f7f6 g5f4 b8c6) +0.33/7 8} 7. Qxc3 {0.00/11 9} Ne4 {(f6e4 g5d8 e4c3 b2c3
f8d8 e2e3 b8c6 f1d3) +0.31/8 8} 8. Bxd8 {0.00/13 8} Nxc3 {(e4c3 b2c3 f8d8
e2e3 b8c6 f1d3 c8d7 e3e4 d5e4 d3e4) +0.38/8 7} 9. bxc3 {0.00/13 8} Rxd8
{(f8d8 e2e3 b8c6 f1d3 c8d7 d1e1 a7a5 e3e4) +0.35/8 7} 10. e3 {0.00/11 8}
Nc6 {(b8c6 f1d3 f7f6 c3c4 d5c4 d3c4 c8d7) +0.39/7 7} 11. c4 {0.00/11 7} Bd7
{(c8d7 c2c3 c6a5 c4d5 e6d5 f1d3 a5c6) +0.45/7 7} 12. cxd5 {0.00/11 7} exd5
{(e6d5 f1b5 d8e8 b5c6 d7c6 f3e5 c6b5 f2f3) +0.45/8 6} 13. Kb2 {(Kc1-b2
g7-g6 Bf1-e2 a7-a5 h2-h4 Kg8-g7 h4-h5 g6xh5 Rh1xh5 Bd7-e6) 0.00/10 7} Bf5
{(d7f5 f1b5 d8d6 b2b1 c6b4 d1c1 d6e6) +0.70/7 6} 14. Bd3 {0.00/10 7} Bg4
{(f5g4 d3e2 c6b4 b2b1 g4f5 d1c1 d8e8) +0.70/7 6} 15. h3 {0.00/10 6} Bxf3
{(g4f3 g2f3 c6b4 b2b1 d8e8 d1g1 b4d3 c2d3) +0.84/7 6} 16. gxf3 {(g2xf3
a7-a5 Rd1-d2 g7-g6 a2-a4 Kg8-g7 Kb2-c3 Nc6-b4 Bd3-b5 Kg7-f6) +0.87/10 6} a5
{(c6b4 c2c3 b4d3 d1d3 f7f5 b2c2 g8f7) +0.75/6 6} 17. a3 {(a2-a3 g7-g6
Kb2-c3 Kg8-g7 Rd1-d2 Kg7-f6 Rh1-b1 Ra8-a7 Rb1-b5 a5-a4 Rb5-c5) +0.90/11 6}
Ra7 {(a5a4 d1b1 a8a7 d3b5 c6e7 b2c1) +0.74/6 5} 18. Kc3 {(Kb2-c3 a5-a4
h3-h4 g7-g6 h4-h5 Kg8-g7 Rh1-g1 Kg7-f6 h5-h6 Rd8-d7 Rg1-g4) +0.89/11 6} Rd6
{(d8d6 c3d2 c6e7 f3f4 d6b6 d1b1 b6e6) +0.83/7 5} 19. Rb1 {(Rd1-b1 Rd6-f6
f3-f4 Nc6-d8 Rb1-b5 c7-c6 Rb5-b3 Nd8-e6 a3-a4) +1.01/9 5} Rf6 {(d6f6 f3f4
f6e6 c3d2 a5a4 c2c4 d5c4 d3c4) +0.73/7 5} 20. Be2 {(Bd3-e2 Nc6-e7 Rb1-b5
Rf6-c6+ Kc3-d3 b7-b6 Rb5-b3 Rc6-h6 Rb3-c3 a5-a4 Rh1-h2) +0.97/10 5} Rg6
{(f6g6 c3d2 c6e7 c2c4 g6g2 d2e1 f7f5) +0.81/7 5} 21. Rhg1 {(Rh1-g1 Rg6-h6
Rg1-g3 Nc6-e7 Rb1-b5 Kg8-f8 Be2-d3 Rh6-c6+ Rb5-c5 Rc6xc5+ d4xc5 h7-h6)
+1.03/10 5} Rh6 {(g6h6 g1g3 c6e7 c3d2 e7f5 g3g5 h6f6) +0.76/7 5} 22. Rb5
{(Rb1-b5 Nc6-e7 Rg1-h1 f7-f5 Rb5-c5 b7-b6 Rc5-b5 Kg8-f7 a3-a4 Ra7-a6)
+0.87/10 5} Ne7 {(c6e7 g1h1 c7c6 b5b2 h6g6 h1b1 b7b5) +0.93/7 4} 23. Rg3
{(Rg1-g3 f7-f6 Be2-d3 a5-a4 Rb5-c5 b7-b6 Rc5-b5 Kg8-f7 Rb5-b4) +0.86/9 5}
c6 {(c7c6 b5b6 e7f5 g3g5 f5d6 g5g3) +0.94/6 4} 24. Rb1 {(Rb5-b1 Ne7-f5
Rg3-g5 Nf5-d6 Rb1-g1 Rh6xh3 Rg5xg7+ Kg8-f8 Rg1-g5 Kf8-e7 a3-a4 h7-h5)
+0.72/11 5} Nf5 {(e7f5 g3g5 f5d6 g5g3 b7b5 c3d2 a7e7) +0.85/7 4} 25. Rg5
{(Rg3-g5 Nf5-d6 Rb1-g1 g7-g6 Rg1-h1 Kg8-g7 a3-a4 Kg7-f6 Rg5-e5 Nd6-f5)
+0.65/10 4} Nd6 {(f5d6 b1g1 g7g6 g5g3 d6f5 g3g5 f5d6) +0.76/7 4} 26. Rh1
{(Rb1-h1 f7-f6 Rg5-g4 Kg8-f7 h3-h4 g7-g6 Rh1-h3 Nd6-b5+ Be2xb5 c6xb5
Kc3-d3) +0.72/10 4} f6 {(f7f6 g5g2 b7b6 c3d2 a7e7 h1b1) +0.92/6 4} 27. Rg4
{(Rg5-g4 Kg8-f7 h3-h4 g7-g6 Be2-d3 Kf7-e6 Rh1-h3 a5-a4 Kc3-b4 Ke6-f7)
+0.65/10 4} f5 {(f6f5 g4g5 b7b6 e2d3 h6f6 c3d2) +0.88/6 4} 28. Rg2 {(Rg4-g2
Kg8-f7 h3-h4 g7-g6 Be2-d3 Nd6-b5+ Kc3-b3 a5-a4+ Kb3-b4 Nb5-d6 Kb4-c5
Kf7-e6) +0.66/10 4} b5 {(b7b5 c3d2 a7e7 d2e1 h6e6 h1g1) +0.89/6 3} 29. h4
{(h3-h4 Kg8-f7 Be2-d3 Kf7-f6 Rh1-h3 Nd6-c4 Rg2-g5 g7-g6 Bd3xc4 d5xc4)
+0.59/10 4} Re7 {(a7e7 c3d2 h6e6 e2d3 a5a4 h1g1) +0.92/6 3} 30. Bd3
{(Be2-d3 Kg8-f7 Rg2-h2 Kf7-f6 Rh2-h3 Re7-d7 Rh3-g3 Nd6-c4 Rg3-g5) +0.63/9
4} Rf6 {(h6f6 h1g1 a5a4 c3d2 f6e6 d2c1) +0.84/6 3} 31. Rh3 {(Rh1-h3 Kg8-f7
h4-h5 a5-a4 Rh3-h1 Kf7-e6 Rh1-g1 Rf6-h6 Rg2-g5) +0.75/9 3} a4 {(a5a4 c3d2
f6f8 f3f4 f8e8 h3g3) +0.89/6 3} 32. Kb4 {(Kc3-b4 Kg8-f7 Kb4-c5 Nd6-c4
Bd3xc4 d5xc4 h4-h5 Re7-c7 Rg2-g5 Kf7-e6) +0.84/10 3} Rfe6 {(f6e6 b4c3 e7e8
h3g3 e6e7 c3d2) +0.92/6 3} 33. Kc5 {(Kb4-c5 Re7-c7 Kc5-b6 Rc7-c8 Rg2-g5
Re6-f6 Rg5-h5 h7-h6 Kb6-c5) +1.19/9 3} Rc7 {(e7c7 h3g3 g8h8 g3g5 e6f6 h4h5)
+0.86/6 3} 34. Rg5 {(Rg2-g5 g7-g6 Kc5-b6 Rc7-c8 h4-h5 Kg8-g7 h5xg6 Re6xg6
Rg5xg6+) +0.99/9 3} h6 {(h7h6 g5h5 e6f6 f3f4 c7c8 f2f3) +0.92/6 3} 35. Rg2
{(Rg5-g2 Nd6-c4 Bd3xf5 Re6-f6 Bf5-d3 Nc4xa3 Kc5-b6 Rc7-d7 h4-h5) +1.15/9 3}
Kf7 {(g8f7 h4h5 f7g8 g2g6 g8f7 h3g3) +0.68/6 3} 36. h5 {(h4-h5 Re6-f6
Rh3-g3 Nd6-e8 e3-e4 d5xe4 f3xe4 f5xe4 Bd3xe4 Rf6-e6) +1.45/10 3} Kf8 {(f7f8
h3g3 e6f6 g3g6 d6b7 c5b6 f6g6 g2g6) +0.45/6 3} 37. Rhg3 {(Rh3-g3 Nd6-e8
Bd3xf5 Re6-e7 Bf5-g6 Ne8-f6 Rg3-h3 Re7-e6 Rg2-g3 Kf8-e7) +3.08/10 3} Nc4
{(d6c4 d3c4 d5c4 c2c3 f8g8 f3f4 c7e7) +0.15/7 2} 38. Rg6 {(Rg3-g6 Rc7-e7
Rg6xe6 Re7xe6 Bd3xf5 Re6-d6 Rg2-g6 Rd6xg6 Bf5xg6 Nc4xa3 Kc5xc6) +3.78/11 3}
Rxg6 {(e6g6 g2g6 c4a3 g6c6 c7d7 c5b4 a3b1 b4b5) -0.43/8 2} 39. Rxg6
{(Rg2xg6 Nc4xa3 Rg6xc6 Rc7xc6+ Kc5xc6 Na3-c4 Kc6xd5 a4-a3 Bd3xc4 b5xc4
Kd5-e5 a3-a2) +3.64/11 3} Nxa3 {(c4a3 g6c6 c7c6 c5c6 f8f7 c6d5 f7f6 d5c5
f5f4 d3b5 f4e3 f2e3 a3c2) -1.38/8 2} 40. Rxc6 {(Rg6xc6 Rc7xc6+ Kc5xc6
Na3-c4 c2-c3 a4-a3 Bd3-b1 Kf8-e7 Kc6xd5 Ke7-f6 Bb1-d3 Kf6-g5) 0.00/11 2}
Rxc6+ {(c7c6 c5c6 f5f4 c6d5 f4e3 f2e3 f8e7 e3e4 b5b4) -1.59/8 2} 41. Kxc6
{0.00/11 2} Nc4 {(a3c4 c2c3 c4d2 c3c4 a4a3 d3b1 d2b1 c4b5 a3a2) +2.30/9 2}
42. c3 {(c2-c3 Nc4-d2 Bd3-b1 Nd2xb1 c3-c4 b5xc4 Kc6xd5 Nb1-d2 Kd5-e5 a4-a3)
0.00/10 2} Nd2 {(c4d2 c3c4 a4a3 c4b5 a3a2 d3f5 a2a1q c6d5 d2f3) +4.14/8 2}
43. Be4 {(Bd3-e4 d5xe4 d4-d5 e4xf3 Kc6xb5 Nd2-e4 d5-d6 Ne4xd6+ Kb5xa4
Kf8-e7) -8.43/9 2} fxe4 {(f5e4 f3e4 d2e4 c3c4 a4a3 f2f3 e4c3 c4b5 a3a2 e3e4
a2a1q e4d5) +7.36/10 2} 44. fxe4 {0.00/11 2} Nxe4 {(d2e4 c3c4 a4a3 f2f3
e4c3 c4b5 a3a2 e3e4 a2a1q e4d5) +7.36/9 2} 45. c4 {(c3-c4 a4-a3 f2-f3
Ne4-f6 e3-e4 a3-a2 e4-e5 a2-a1Q e5xf6 d5xc4 f6xg7+) -25.62/11 2} dxc4
{(b5c4 c6d5 e4d2 d5c5 c4c3 d4d5 c3c2 c5b5 c2c1q b5a4) +8.86/9 2} 46. f3
{(f2-f3 c4-c3 f3xe4 c3-c2 Kc6xb5 c2-c1Q e4-e5 Qc1xe3 Kb5-c4 a4-a3 Kc4-c5)
0.00/11 2} Nd2 {(e4d2 c6b5 c4c3 b5a4 c3c2 d4d5 c2c1q e3e4 c1c5 e4e5 c5d5)
+10.13/10 2} 47. Kxb5 {(Kc6xb5 c4-c3 Kb5xa4 c3-c2 f3-f4 c2-c1Q Ka4-b5
Nd2-e4 d4-d5 Qc1xe3) -32.30/10 2} c3 {(c4c3 b5a4 c3c2 f3f4 c2c1q a4b5 c1c4
b5b6 c4b3 b6c5 b3e3) +10.46/9 2} 48. Kxa4 {(Kb5xa4 c3-c2 f3-f4 c2-c1Q
Ka4-b5 Nd2-e4 f4-f5 Ne4-d6+ Kb5-b6 Qc1xe3 Kb6-c5) 0.00/10 2} c2 {(c3c2 f3f4
c2c1q a4b4 c1c4 b4a5 c4c3 a5b5 c3e3 d4d5 e3f4) +11.18/9 2} 49. Kb5 {(Ka4-b5
c2-c1Q f3-f4 Nd2-e4 Kb5-b4 Qc1-c3+ Kb4-b5 Ne4-d6+ Kb5-b6 Nd6-c4+ Kb6-c6
Nc4xe3+ Kc6-d6 Qc3xd4+) 0.00/10 2} c1=Q {(c2c1q f3f4 d2e4 b5b4 c1e3 d4d5
e3f4) +11.28/7 1} 50. f4 {(f3-f4 Nd2-e4 Kb5-b4 Qc1xe3 Kb4-c4 Qe3-c3+ Kc4-d5
Ne4-f6+ Kd5-e5 Qc3-e3+ Ke5-d6 Qe3xd4+ Kd6-e6 Nf6xh5) -36.73/10 2} Qc4+
{(c1c4 b5a5 c4d5 a5b4 d5h5 f4f5 h5f3 f5f6 f3e3 f6g7 f8g7) +11.53/6 1} 51.
Kb6 {(Kb5-b6 Qc4-e6+ Kb6-c5 Qe6xe3 f4-f5 Nd2-b3+ Kc5-b4 Nb3xd4 Kb4-c4
Nd4xf5 Kc4-d5 Kf8-e7) -36.84/9 2} Nf1 {(d2f1 d4d5 c4d5 e3e4 d5e4 b6c5 e4f4)
+12.70/6 1} 52. e4 {(e3-e4 Qc4xd4+ Kb6-b5 Qd4xe4 Kb5-c5 Qe4xf4 Kc5-c6
Qf4-f3+ Kc6-d6 Qf3xh5 Kd6-c6 Qh5-f3+ Kc6-d6 Nf1-e3) -39.03/11 1 Arena
Adjudication} 0-1[/pgn]
What stumped me was it was seeing the position as +3.. and from there on it went to lose. From the game, it was quiet evident to play 38. Bc4 and almost after few captures, White gets a passed d-pawn and is winning.
Can somebody explain which feature I need to correct / add to avoid this loss.