Smooth Moves

MadChess 2.2 participated in a tournament Graham Banks arranged, named Smooth Moves. 1 2 3 4 5 6 7 8 9 0 1 RookieMonster 1.8.1 64-bit **** ½½01 1010 10½½ 01½1 ½100 ½0½½ 0111 1½11 11½1 21.5/36 2 KnightX 2.4 64-bit ½½10 **** 0½11 10½0 ½010 0011 1½1½ ½½11 1110 1½½½ 21.0/36 361.75 3 Betsabe II 2020 0101 1½00 **** 0111 01½1 0001 0110 10½½ 1½11 1½11 21.0/36 355.25 4 Velvet 1.0.0 64-bit 01½½ 01½1 1000 **** 1010 1100 ½½½1 ½½01 1½11 1010 19.5/36 339.75 5 Raven 1.10 64-bit 10½0 ½101 10½0 0101 **** 0110 ½½½1 01½1 10½0 ½111 19.5/36… Continue Reading

MadChess 3.0 Beta 2d855ec (Crash Bug)

I found and exterminated a bug that caused MadChess to crash in about one quarter of one percent of games. I noticed the engine crashes on line 6 of this code in the Board.IsMoveLegal(ref ulong Move) method. First Hypothesis : Illegal Move Causing King Capture? I suspected the crash was caused by kingSquare == Square.Illegal (meaning king not on any square) due to a missing king. Perhaps a move two ply earlier exposed its own king to check, MadChess erroneously considered the move legal, then captured the king the previous ply? If that were true, in the current ply, when… Continue Reading

MadChess 3.0 Beta 6794c89 (King Safety)

I added evaluation of king safety to MadChess 3.0 Beta. Because determining the safety of a king’s position involves examining moves that attack squares near the king, I combined it with piece mobility evaluation, which also examines moves. When examining piece mobility, keep a weighted count of attacks on squares ringing the king (16 squares in outer ring and 8 squares in inner ring) with separate weights for attacks by minor pieces, rooks, and queens. In the following code, white moves to squares ringing the black king contribute negatively to black’s king safety. Black moves to squares ringing the white… Continue Reading

MadChess 3.0 Beta bef88d5 (Tweak Search, Tune Eval)

I’ll let my Pull Request notes (PR 3) explain where I began and where I finished (hint: not where I expected) with my latest code improvements to MadChess 3.0 Beta: Originally, I intended this PR to add Static Exchange Evaluation (SEE) to MadChess’ search method to reorder or skip evaluation of captures and / or quiet moves that enable the opponent to profitably capture the most recently moved piece. After numerous attempts to write a method that evaluates piece exchanges- either statically (without actually moving pieces) or dynamically (move pieces and search), and integrate it into the search, I could… Continue Reading

The Sorceress

MadChess 2.2 participated in a tournament Graham Banks arranged, named The Sorceress. 1 2 3 4 5 6 7 8 9 0 1 FrankWalter 2.4.0 64-bit ** 01 ½½ ½0 10 1½ 10 ½1 11 11 11.5/18 2 KnightX 2.1b 64-bit 10 ** 1½ 1½ 11 ½0 1½ 1½ 01 ½0 11.0/18 100.25 3 CyberPagno 3.0 64-bit ½½ 0½ ** ½1 01 11 01 01 11 01 11.0/18 94.50 4 RookieMonster 1.7.2 64-bit ½1 0½ ½0 ** 01 01 ½1 ½½ 11 11 11.0/18 88.75 5 Lozza 1.18 64-bit 01 00 10 10 ** 1½ ½0 11 01 11 10.0/18… Continue Reading