MadChess 1.4 Released

I’ve added features to improve MadChess’ value as a sparring partner and analysis tool. I spent a lot of time implementing an algorithm that reduces the playing strength of MadChess. In chess GUIs that support the feature, MadChess will automatically adjust its playing strength to match the user. See the User Guide for details.

Source code and EXEs available on the Downloads page.

  1. Added UCI_LimitStrength and UCI_Elo options.
  2. Added chess personalities from young child to expert.
  3. Added MultiPV (display multiple principal variations).
  4. Enabled PVS search for MultiPV or when ScoreError > 0.
  5. Do not reduce search horizon of pawn pushes.
  6. Added bonus for trading material (when behind trade pawns, when ahead trade pieces).
  7. Added rook versus rook draw detection.
  8. Simplified killer move update logic.
  9. Added NodesLazyEvaluated statistic.
  10. Replaced many “if not continue” conditions with if conditions (to improve code readability).
  11. Eliminated all structs (converted to sealed classes with static methods).
  12. Eliminated uneccessary allocations (replaced with private class members).
  13. Eliminated SideToMove from UndoMove class.
  14. Eliminated PvsMinToHorizon UCI option.
  15. Added a logo.

Banks 45th Amateur Series Division 6

MadChess 1.3 participated in Graham Banks’ 45th amateur tournament in division 6.

                                 1  2  3  4  5  6  7  8  9  0  1  2  3  4  5  6  
1   RomiChess P3L 64-bit         ** 0½ 1½ 00 11 1½ 11 11 11 ½0 1½ 11 11 11 ½0 11  22.0/30
2   Sjakk 2.0 64-bit             1½ ** ½1 11 01 ½0 10 ½0 ½1 ½½ 1½ 11 ½1 ½1 11 11  21.0/30
3   OliThink 5.3.2 64-bit        0½ ½0 ** 01 01 11 ½1 ½½ 11 11 0½ ½½ 11 ½0 ½½ 11  18.5/30
4   Myrddin 0.86 64-bit          11 00 10 ** 10 ½1 00 01 ½½ 10 11 10 10 ½1 11 11  18.0/30
5   Maverick 0.51 64-bit         00 10 10 01 ** 01 10 01 10 00 10 11 11 1½ ½1 11  17.0/30
6   Capivara LK 0.09a02c 64-bit  0½ ½1 00 ½0 10 ** 11 1½ 11 ½0 ½0 01 ½0 11 1½ 10  16.0/30  231.25
7   Waxman 2013                  00 01 ½0 11 01 00 ** ½0 1½ ½½ 01 01 10 1½ 11 11  16.0/30  218.25
8   Bagatur 1.3a 64-bit          00 ½1 ½½ 10 10 0½ ½1 ** ½1 ½½ 10 1½ ½1 ½1 00 ½0  15.0/30
9   Butcher 1.64 64-bit          00 ½0 00 ½½ 01 00 0½ ½0 ** 11 ½1 01 10 11 10 11  14.0/30
10  EveAnn 1.71a                 ½1 ½½ 00 01 11 ½1 ½½ ½½ 00 ** 00 0½ ½1 0½ 11 00  13.5/30  212.75
11  Absolute Zero 2.4.0.0        0½ 0½ 1½ 00 01 ½1 10 01 ½0 11 ** 0½ 0½ 10 01 10  13.5/30  198.00
12  Gibbon 2.57a 64-bit          00 00 ½½ 01 00 10 10 0½ 10 1½ 1½ ** ½0 10 11 ½1  13.5/30  180.75
13  FireFly 2.7.0 64-bit         00 ½0 00 01 00 ½1 01 ½0 01 ½0 1½ ½1 ** 01 01 01  12.0/30  167.25
14  MadChess 1.3 64-bit          00 ½0 ½1 ½0 0½ 00 0½ ½0 00 1½ 01 01 10 ** 1½ 11  12.0/30  161.25
15  MangoPaolaAjedrez 4.1        ½1 00 ½½ 00 ½0 0½ 00 11 01 00 10 00 10 0½ ** 1½  10.5/30
16  Mediocre 0.5                 00 00 00 00 00 01 00 ½1 00 11 01 ½0 10 00 0½ **   7.5/30

Games

MadChess Playing on Internet Chess Club (ICC)

I registered a computer account on the Internet Chess Club (ICC). I’m using the WinBoard GUI to play MadChess against human opponents. I know the ratings of computer chess engines are not well calibrated to the ratings of human players. However, MadChess is exceeding my expectations, winning its first twenty games and counting.

In case you’re wondering, I am not violating ICC rules. I registered MadChess as a computer account. All ICC players have the option of blocking computer players, if they wish to play only human opponents. See ICC Help : Computers for details.

See Versus Human Ratings for MadChess’ rating against human opponents.

Banks 44th Amateur Series Division 7

MadChess 1.3 participated in Graham Banks’ 44th amateur tournament in division 7.

                              1    2    3    4    5    6    7    8    9    0    1    2    
1   Maverick 0.51 64-bit      **** 001½ 1½11 ½010 00½1 1½11 1010 01½½ 1½½½ 1½11 1011 1011  27.5/44
2   Gibbon 2.57a 64-bit       110½ **** ½101 01½1 1½½1 ½1½0 1½00 ½100 ½1½½ ½101 ½½½1 1110  26.0/44
3   Absolute Zero 2.4.0.0     0½00 ½010 **** 1000 1½01 1100 11½1 11½1 1111 01½1 0½01 1010  24.5/44
4   Bagatur 1.3a 64-bit       ½101 10½0 0111 **** 0011 0½01 0½01 101½ 110½ 011½ ½½10 10½1  24.0/44  518.50
5   FireFly 2.6.0 64-bit      11½0 0½½0 0½10 1100 **** 0011 101½ 1011 1101 001½ ½01½ 1½½1  24.0/44  512.75
6   Butcher 1.64 64-bit       0½00 ½0½1 0011 1½10 1100 **** 0111 10½½ 0010 ½½11 1½11 ½110  24.0/44  507.25
7   MadChess 1.3 64-bit       0101 0½11 00½0 1½10 010½ 1000 **** 0100 ½1½½ 1½½1 0111 1½11  23.0/44
8   MangoPaolaAjedrez 4.1     10½½ ½011 00½0 010½ 0100 01½½ 1011 **** 1½01 1111 1100 0001  22.0/44
9   Carballo 0.8              0½½½ ½0½½ 0000 001½ 0010 1101 ½0½½ 0½10 **** 0½½½ 1110 10½1  18.5/44  396.25
10  ChessKiss 1.7 64-bit      0½00 ½010 10½0 100½ 110½ ½½00 0½½0 0000 1½½½ **** ½110 1111  18.5/44  380.50
11  ProChess 1.02AD           0100 ½½½0 1½10 ½½01 ½10½ 0½00 1000 0011 0001 ½001 **** ½½½1  17.5/44
12  Fischerle 0.9.30b 64-bit  0100 0001 0101 01½0 0½½0 ½001 0½00 1110 01½0 0000 ½½½0 ****  14.5/44

Games

Madsen Bullet Swiss Edition 1

Fritz 13 GUI
2 min/game + 1 sec/move
Fritz 13 opening book
128 MB cache
Nalimov and Gaviota tablebases
Intel i7 960 64 bit CPU @ 3.20 GHz

                                 1   2   3   4   5   6   7   8   9   10   
  1 Komodo 5.1r2 64-bit          +1  -1  -1  +½  -1  +1  +1  -½  +½  -½   8.0/10
                                 26  35  4   2   8   3   11  6   5   7   
  2 Critter 1.6a 64-bit          -½  +1  +1  -½  +1  +½  -1  -½  +1  +½   7.5/10
                                 16  28  9   1   5   4   7   3   15  6   
  3 Rybka 4.1 SSE42 x64          -1  +1  -½  +1  +1  -0  -½  +½  -1  +1   7.5/10
                                 30  7   14  11  6   1   4   2   13  17  
  4 Fritz 13                     -1  +1  +0  -1  +1  -½  +½  +1  -1  -½   7.5/10
                                 39  36  1   41  18  2   3   12  6   5   
  5 Stockfish 4 64 SSE4.2        +1  -½  -1  +1  -0  +1  +½  -1  -½  +½   7.0/10
                                 12  6   15  10  2   17  13  11  1   4   
  6 Spike 1.4                    -1  +½  +1  -1  -0  -1  +1  +½  +0  -½   6.5/10
                                 21  5   17  19  3   15  9   1   4   2   
  7 Sjeng 3.0                    +1  -0  -1  +1  -1  +½  +0  -1  -½  +½   6.5/10
                                 29  3   35  13  14  12  2   8   9   1   
  8 DiscoCheck 3.7.1             +1  -1  -½  +1  +0  -0  +1  +0  -1  -1   6.5/10
                                 33  41  18  20  1   11  16  7   30  14  
  9 Junior 12.5.0.3              -1  +½  -0  +1  -½  +1  -0  -1  +½  +1   6.5/10
                                 47  24  2   34  12  18  6   30  7   11  
 10 ChessMaster 10               -0  +1  +1  -0  +½  +½  -1  +1  -½  +½   6.0/10
                                 15  32  33  5   16  34  31  24  14  13  
 11 Shredder 12 UCI              -½  -1  +1  -0  +1  +1  -0  +0  -1  -0   5.5/10
                                 13  27  24  3   20  8   1   5   21  9   
 12 HIARCS 14 WCSC               -0  +1  -1  +1  +½  -½  +1  -0  +0  -½   5.5/10
                                 5   21  36  25  9   7   14  4   17  15  
 13 Fruit 2.3                    +½  -1  +½  -0  +1  +1  -½  -½  +0  -½   5.5/10
                                 11  31  19  7   29  28  5   17  3   10  
 14 ProDeo 1.8                   -1  +1  +½  -½  +0  -1  -0  -1  +½  +0   5.5/10
                                 42  15  3   18  7   24  12  20  10  8   
 15 Pawny 0.2.2 (x64)            +1  -0  +0  -1  -1  +0  -1  +1  -0  +½   5.5/10
                                 10  14  5   37  38  6   19  26  2   12  
 16 Pupsi2 v0.08                 +½  -1  -0  +½  -½  +1  -0  +½  -½  -1   5.5/10
                                 2   23  20  29  10  25  8   19  27  35  
 17 Zappa Mexico II x64              +1  -0  +1  -1  -0  +1  +½  -1  -0   5.5/9
                                     22  6   21  25  5   20  13  12  3   
 18 Capivara LK 0.09a01a 64-bit  +1  -1  +½  +½  -0  -0  +0  -1  -½  +1   5.5/10
                                 38  25  8   14  4   9   24  36  26  27  
 19 LittleThought v1.052         +1  -½  -½  +0  -1  +½  +0  -½  +1  -½   5.5/10
                                 37  20  13  6   27  30  15  16  34  22  
 20 Maverick 0.51 x64            -1  +½  +1  -0  -0  +1  -0  +0  +1  +1   5.5/10
                                 32  19  16  8   11  38  17  14  39  28  
 21 Glass 1.9                    +0  -0  +1  -0  +1  +½  -1  -1  +0  -1   5.5/10
                                 6   12  39  17  23  35  29  28  11  26  
 22 ZCT 0.3.2450                 +½  -0  -½  -0  -1  +0  +1  +1  -1  +½   5.5/10
                                 27  17  37  38  44  26  42  25  24  19  
 23 Sungorus 1.4                 -1  +0  -0  +0  -0  +1  -1  -½  +1  +1   5.5/10
                                 40  16  25  42  21  43  33  38  32  29  
 24 Jazz v444                    +1  -½  -0  +½  +1  +0  -1  -0  +0  -1   5.0/10
                                 46  9   11  27  26  14  18  10  22  36  
 25 Beowulf 2.4                  -1  +0  +1  -0  +0  -0  +1  -0  +1  -1   5.0/10
                                 34  18  23  12  17  16  35  22  37  42  
 26 Vajolet 1.62                 -0  +1  -½  +½  -0  -1  +1  -0  +½  +0   4.5/10
                                 1   44  34  28  24  22  40  15  18  21  
 27 MadChess 1.3                 -½  +0  -1  -½  +0  -½  +½  +1  +½  -0   4.5/10
                                 22  11  30  24  19  29  36  41  16  18  
 28 Mediocre v0.34               +½  -0  +1  -½  +1  -0  -½  +0  +1  -0   4.5/10
                                 31  2   47  26  41  13  34  21  38  20  
 29 Gibbon 2.57a                 -0  +½  +1  -½  -0  +½  +0  -1  +1  -0   4.5/10
                                 7   39  46  16  13  27  21  44  31  23  
 30 FireFly v2.6.0 (x64)         +0      +0  -1  +1  -½  -1  +0  +0  +1   4.5/9
                                 3       27  43  39  19  41  9   8   34  
 31 BikJump v2.01                -½  +0  +½  -0  +1  +1  +0  -½  -0  -1   4.5/10
                                 28  13  38  36  33  42  10  34  29  39  
 32 BigLion 2.23w                +0  -0  +1  +1  -0  +0  -1  -½  -0  +1   4.5/10
                                 20  10  44  40  34  41  39  37  23  45  
 33 Roce 0.0390                  -0  +1  -0  +   -0  +1  +0  -1  -½  -1   4.5/9
                                 8   43  10  35  31  46  23  45  44  38  
 34 Matheus-2.3                  +0  -1  +½  -0  +1  -½  +½  +½  -0  -0   4.0/10
                                 25  40  26  9   32  10  28  31  19  30  
 35 Lime_v66                     -1  +0  +0  -   +½  -½  -0  -1  +1  +0   4.0/9
                                 44  1   7   33  37  21  25  46  43  16  
 36 Jabba13032012                -1  -0  +0  +1  -   +½  -½  +0  -1  +0   4.0/9
                                 45  4   12  31  42  40  27  18  41  24  
 37 Wing 2.0                     -0  -½  +½  +0  -½  -0  +1  +½  -0  -1   4.0/10
                                 19  38  22  15  35  39  43  32  25  44  
 38 Monarch 1.7                  -0  +½  -½  +1  +0  -0  -1  +½  -0  +0   3.5/10
                                 18  37  31  22  15  20  45  23  28  33  
 39 Sharper 0.17                 +0  -½  -0  +1  -0  +1  +0  -1  -0  +0   3.5/10
                                 4   29  21  47  30  37  32  40  20  31  
 40 IQ23.003                     +0  +0  -1  -0  +1  -½  -0  +0      -1   3.5/9
                                 23  34  45  32  46  36  26  39      47  
 41 Faile 1.4                    -1  +0  +1  +0  -0  -1  +0  -0  +0       3.0/9
                                 43  8   42  4   28  32  30  27  36      
 42 Clueless V1.4                +0  +1  -0  -1  +   -0  -0      +1  +0   3.0/8
                                 14  45  41  23  36  31  22      47  25  
 43 RumbleMinze 1.0.33           +0  -0      +0  +1  -0  -0  +1  -0  +1   3.0/9
                                 41  33      30  45  23  37  47  35  46  
 44 Vapor 0.01 (r12)             +0  -0  -0  -½  +0      -1  +0  +½  +0   2.0/9
                                 35  26  32  46  22      47  29  33  37  
 45 TSCP 1.81                    +0  -0  +0      -0  -1  +0  +0  -1  -0   2.0/9
                                 36  42  40      43  47  38  33  46  32  
 46 Tarrasch V0.905              -0  +½  -0  +½  -0  -0      +0  +0  -0   1.0/9
                                 24  47  29  44  40  33      35  45  43  
 47 Toledo                       +0  -½  -0  -0      +0  +0  -0  -0  +0   0.5/9
                                 9   46  28  39      45  44  43  42  40

Games