MadChess 2.0 Beta Build 059 (Free Passed Pawns)

I added free passed pawn evaluation to MadChess 2.0 Beta. Unobstructed passed pawns on the sixth or seventh rank are awarded a bonus if they may advance to the next square without material loss. The square must be unoccupied and the score after exchanging pieces on the advance square must not be negative. In addition, I simplified the move ordering code. I felt the GetNextMove() method required too much external bookkeeping (to mark played moves, illegal moves, update local move variable, save move back to array, etc) and therefore was too prone to bugs. I replaced it with a two… Continue Reading

Banks 51st Amateur Series Division 7

MadChess 1.4 participated in Graham Banks’ 51st amateur tournament in division 7. 1 2 3 4 5 6 7 8 9 0 1 2 1 Jazz 840 64-bit **** 0100 ½01½ 01½1 0011 1½11 1101 1½½½ 11½½ ½1½½ ½1½½ 1111 28.5/44 2 Carballo 1.1 1011 **** ½000 ½001 ½1½1 111½ 101½ 0110 0110 1½10 111½ 1111 28.0/44 3 FireFly 2.7.0 64-bit ½10½ ½111 **** 0110 1110 0½½1 01½0 1111 ½1½0 ½010 00½0 11½½ 25.0/44 4 PikoSzachy Extreme 10½0 ½110 1001 **** 01½1 0½0½ 1001 1½11 1111 0100 1001 0½1½ 24.0/44 5 Lozza 1.14a 64-bit 1100 ½0½0 0001 10½0 **** ½011… Continue Reading

MadChess 2.0 Beta Build 052 (Unstoppable Pawns, Draws, Material Trades)

I added code to detect unstoppable passed pawns and drawn endgames, and code to evaluate material trades. The code that evaluates material trades implements the age old advice, “When ahead trade pieces. When behind trade pawns.” A greater bonus is giving for trading pawns, since in many endgames the side with a material advantage cannot win without promoting a pawn. This added 39 Elo to the playing strength of MadChess 2.0 Beta. MadChess 2.0 2193 : 800 (+399,=168,-233), 60.4 % vs. : games ( +, =, -), (%) : Diff, SD, CFS (%) Glass 1.6 : 50 ( 4, 7,… Continue Reading

MadChess 2.0 Beta Build 044 (Late Move Pruning)

I added late move pruning to MadChess 2.0 Beta. Moves are sorted according to the history heuristic. If a quiet move qualifies for the largest late move reduction, but is less than or equal to four moves from the search horizon, it is skipped. The move is very unlikely to cause a beta cutoff and no time is wasted searching it. This added 39 Elo to the playing strength of MadChess 2.0 Beta. MadChess 2.0 Beta is now stronger than MadChess 1.4. MadChess 2.0 2154 : 800 (+347,=162,-291), 53.5 % vs. : games ( +, =, -), (%) : Diff,… Continue Reading

MadChess 2.0 Beta Build 040 (History Heuristic + Late Move Reductions)

I added a history heuristic and late move reductions to MadChess 2.0 Beta. When a move causes a beta cutoff, the move’s history value is incremented by the distance to the horizon squared. (Distance to the horizon squared is used to prevent moves deep in the search tree from having too much influence over move order.) A history value is saved for each combination of piece type and move destination square. Moves are ordered by their history values descending (after cached best move, capture victim, capture attacker, promoted piece, and killer moves). The search horizon is reduced for moves that… Continue Reading