Banks 73rd Amateur Series Division 7

MadChess 2.2 participated in Graham Banks’ 73rd amateur tournament in division 7. Baga Donn Dork Orio Ghos MadC Bets Rook Dros Jumb Lozz Romi 1. Bagatur 1.7 64-bit #### =0== ==0= 1==0 ===1 =111 11=1 =10= ==1= 110= =111 1=1= 64% 28.0 (944.0, 583.8) 2. Donna 4.1 64-bit =1== #### =101 =11= 1=00 1=1= 1110 ===1 1==0 ==== 1110 101= 62% 27.5 (946.0, 592.0) 3. Dorky 4.8 64-bit ==1= =010 #### 1=== 111= 1=00 10== =011 1110 0=11 ===1 =0=1 59% 26.0 (952.0, 561.3) 4. Orion 0.5 64-bit 0==1 =00= 0=== #### 0100 1==1 =001 =1=1 1011 1111 ==1= =1=1… Continue Reading

Banks 72nd Amateur Series Division 7

MadChess 2.2 participated in Graham Banks’ 72nd amateur tournament in division 7. Asym Topp Dork Ghos Jumb MadC Rook Bets Baga Lozz Dros Neme 1. Asymptote 0.4 64-bit #### 1=00 =1=1 101= 11=1 1=11 0=== 0110 11== 0=1= 111= =111 67% 29.5 (938.0, 616.3) 2. Topple 0.3.3 64-bit 0=11 #### ==10 0=11 1=01 0111 ==0= 0111 0011 ==1= 11=1 1111 66% 29.0 (940.0, 601.8) 3. Dorky 4.8 64-bit =0=0 ==01 #### 1011 000= 111= 1111 1110 0111 0110 1001 ==11 61% 27.0 (948.0, 562.5) 4. Ghost 3.1 64-bit 010= 1=00 0100 #### 1=01 0101 010= 1101 =110 1==1 1001 11=1… Continue Reading

MadChess 3.0 Beta Build 103 (Passed Pawns)

I added passed pawn evaluation to MadChess 3.0 Beta. The passed pawn evaluation code scores the following features: Passed Pawns Free Passed Pawns (no pieces blocking promotion path) King Escorted Passed Pawns Unstoppable Passed Pawns (Rule of the Square) Middlegame Passed Pawns: 000 000 003 008 015 024 034 000 Endgame Passed Pawns: 000 004 018 042 075 118 170 000 Endgame Free Passed Pawns: 000 008 034 077 138 216 311 000 Endgame King Escorted Passed Pawn: 11 Unstoppable Passed Pawn: 775   This code improved the engine’s understanding of threats created by pushing passed pawns. It increased the… Continue Reading

MadChess 3.0 Beta Build 093 (Staged Move Generation)

I increased the speed at which MadChess 3.0 Beta examines nodes by implementing staged move generation. Previously, in the main search, the chess engine would generate all pseudo-legal moves, sort them by move priority, then iterate through them: testing move legality (does move expose own king to check) and playing the legal moves. This is wasteful if a beta cutoff occurs early in the move list. Usually a capture is responsible for a beta cutoff, so time is wasted generating non-captures. Now the chess engine generates moves in stages. I could have implemented more stages (QueenCaptures, RookCaptures, BishopKnightCaptures, etc) but… Continue Reading

MadChess 3.0 Beta Build 084 (History Heuristics)

I increased the playing strength of MadChess 3.0 by improving the history heuristics used by Late Move Reductions (LMR). First, I added a flag that indicates if a move was played during search (indicated below with “!”). This implies the move is legal (doesn’t expose own king to check) and search examined it (as opposed to moves appearing in the move list after a move that causes a beta cutoff). Moves are encoded as ulong primitives like so: Next, I altered the search function to flag played moves. Then I modified the search function so it not only increments move… Continue Reading