MadChess 2.0 Released
Moderators: hgm, Harvey Williamson, bob
Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
MadChess 2.0 Released
Hey chess engine enthusiasts. I'm releasing version 2.0 of my engine, MadChess. I've rewritten the engine from scratch in a more procedural style code- as opposed to the sub-optimal (for chess engines at least) object-oriented style I used in MadChess 1.x.
The engine is about 115 - 160 ELO stronger than its predecessor, depending on time control. I estimate it is about 2350 on the CCRL scale.
You may download MadChess 2.0 at the following link. It requires .NET 4.6, which is included in Windows 10 or may be downloaded separately. I've updated the download page and the ReadMe file contained in the .zip file. I haven't updated anything else on the site yet.
http://www.madchess.net/page/Downloads
The engine doesn't work in Hiarcs Chess Explorer due to a bug in HCE, or QT, or .NET 4- I don't wish to referee that dispute. Please use another GUI such as Fritz, Shredder, or Arena.
It's come to my attention that I'm getting married in two weeks. So I'm unlikely to update the MadChess website or address any serious problems with the engine in the near future. Let's hope it just works. Cheers.
The engine is about 115 - 160 ELO stronger than its predecessor, depending on time control. I estimate it is about 2350 on the CCRL scale.
You may download MadChess 2.0 at the following link. It requires .NET 4.6, which is included in Windows 10 or may be downloaded separately. I've updated the download page and the ReadMe file contained in the .zip file. I haven't updated anything else on the site yet.
http://www.madchess.net/page/Downloads
The engine doesn't work in Hiarcs Chess Explorer due to a bug in HCE, or QT, or .NET 4- I don't wish to referee that dispute. Please use another GUI such as Fritz, Shredder, or Arena.
It's come to my attention that I'm getting married in two weeks. So I'm unlikely to update the MadChess website or address any serious problems with the engine in the near future. Let's hope it just works. Cheers.
My C# chess engine: http://www.madchess.net
- Graham Banks
- Posts: 30733
- Joined: Sun Feb 26, 2006 9:52 am
- Location: Auckland, NZ
Re: MadChess 2.0 Released
Thanks Erik and congratulations on your upcoming marriage. 
My email addresses:
gbanksnz at gmail.com
gbanksnz at yahoo.co.nz
gbanksnz at gmail.com
gbanksnz at yahoo.co.nz
Re: MadChess 2.0 Released
Hi Erik,
Thanks for the engine and much happiness in life!
PS. Your engine is 64-bit, isn't it?
Thanks for the engine and much happiness in life!
PS. Your engine is 64-bit, isn't it?
Gabor Szots
CCRL testing group
CCRL testing group
Re: MadChess 2.0 Released
Great news, Erik
I will play your last engine.
Respect your marriage, be sure to have a friend at the gate of the church waiting in a car with the engine running, you never know...
Better running than chased regards
Fern
I will play your last engine.
Respect your marriage, be sure to have a friend at the gate of the church waiting in a car with the engine running, you never know...
Better running than chased regards
Fern
- Steve Maughan
- Posts: 1025
- Joined: Wed Mar 08, 2006 7:28 pm
- Location: Florida, USA
- Contact:
Re: MadChess 2.0 Released
Hi Erik - Congrats on both accounts!
- Steve
- Steve
http://www.chessprogramming.net - Maverick Chess Engine
Re: MadChess 2.0 Released
Congratz for your marriage, forget about computer chess for a moment
.
Sample game at elo 1200.
[pgn]
[Event "Computer chess game"]
[Site "Home"]
[Date "2015.10.13"]
[Round "?"]
[White "F"]
[Black "MadChess 2.0"]
[Result "1-0"]
[BlackElo "1200"]
[ECO "A40"]
[Opening "Queen's Pawn Game"]
[TimeControl "120+0"]
[Termination "normal"]
[PlyCount "59"]
[WhiteType "human"]
[BlackType "program"]
1. d4 Na6 {(1. ... Nf6 2.Nf3 Nc6 3.Nc3 d5) 0.00/5 4} 2. e4 b6 {(1. ... Nf6
2.Nc3 d5 3.Bd3) -0.18/4 3} 3. Nf3 Nh6 {(1. ... Nf6 2.Nc3 Nb4) -0.35/3 4} 4.
Bd3 e6 {(1. ... Nb4 2.0-0 Ng4) -0.54/3 4} 5. O-O Qf6 {(1. ... Ng4 2.Nc3
Nb4) -0.84/3 4} 6. c4 Bd6 {(1. ... Ng4 2.Bg5 Qg6) -0.80/3 3} 7. e5 Qd8 {(1.
... Qe7 2.exd6 cxd6 3.Nc3) -2.99/4 2} 8. exd6 cxd6 {(1. ... cxd6 2.Bf4 d5
3.Nc3) -3.12/4 3} 9. Nc3 Nb8 {(1. ... 0-0 2.Bf4 Qe7) -2.74/3 3} 10. Qe2 Qc7
{(1. ... 0-0 2.Bf4 Qe7) -2.99/3 3} 11. Bf4 Kd8 {(1. ... 0-0 2.Ne4) -3.14/2
3} 12. Nb5 Qb7 {(1. ... Qc6 2.Nxd6 f5) -4.75/3 3} 13. Nxd6 Qc6 {(1. ... Qc6
2.Bxh6) -5.16/2 3} 14. Bxh6 Qxd6 {(1. ... Qxd6 2.Bxg7 Rg8) -5.19/3 3} 15.
c5 Qc6 {(1. ... bxc5 2.Bxg7) -4.14/2 3} 16. Be4 d5 {(1. ... d5 2.cxd6 Qxd6)
-5.80/3 2} 17. cxd6 Qxd6 {(1. ... Qxd6) -5.80/1 2} 18. Bxg7 Ba6 {(1. ...
Ba6 2.Bf6+ Kc8) -5.11/3 2} 19. Qe3 Bxf1 {-4.94/3 2} 20. Bxa8 Rg8 {-4.83/2
2} 21. Be5 Rxg2+ {-7.06/3 2} 22. Kxf1 Rxf2+ {-10.87/3 2} 23. Kxf2 Qb4 {(1.
... Qb4 2.Rb1) -10.91/2 2} 24. Rg1 Qxb2+ {(1. ... Qxb2+ 2.Qe2 Qxe2+)
-9.80/3 2} 25. Nd2 Na6 {(1. ... Nd7 2.Rg8+ Ke7) -9.57/3 2} 26. Rg8+ Kd7
{(1. ... Ke7 2.a4) -9.73/2 2} 27. Rg7 Ke7 {(1. ... Ke7 2.h4) -9.73/2 2} 28.
Qg5+ Ke8 {-9.79/4 2} 29. Bc6+ Kf8 30. Bd6# 1-0[/pgn]
Sample game at elo 1200.
[pgn]
[Event "Computer chess game"]
[Site "Home"]
[Date "2015.10.13"]
[Round "?"]
[White "F"]
[Black "MadChess 2.0"]
[Result "1-0"]
[BlackElo "1200"]
[ECO "A40"]
[Opening "Queen's Pawn Game"]
[TimeControl "120+0"]
[Termination "normal"]
[PlyCount "59"]
[WhiteType "human"]
[BlackType "program"]
1. d4 Na6 {(1. ... Nf6 2.Nf3 Nc6 3.Nc3 d5) 0.00/5 4} 2. e4 b6 {(1. ... Nf6
2.Nc3 d5 3.Bd3) -0.18/4 3} 3. Nf3 Nh6 {(1. ... Nf6 2.Nc3 Nb4) -0.35/3 4} 4.
Bd3 e6 {(1. ... Nb4 2.0-0 Ng4) -0.54/3 4} 5. O-O Qf6 {(1. ... Ng4 2.Nc3
Nb4) -0.84/3 4} 6. c4 Bd6 {(1. ... Ng4 2.Bg5 Qg6) -0.80/3 3} 7. e5 Qd8 {(1.
... Qe7 2.exd6 cxd6 3.Nc3) -2.99/4 2} 8. exd6 cxd6 {(1. ... cxd6 2.Bf4 d5
3.Nc3) -3.12/4 3} 9. Nc3 Nb8 {(1. ... 0-0 2.Bf4 Qe7) -2.74/3 3} 10. Qe2 Qc7
{(1. ... 0-0 2.Bf4 Qe7) -2.99/3 3} 11. Bf4 Kd8 {(1. ... 0-0 2.Ne4) -3.14/2
3} 12. Nb5 Qb7 {(1. ... Qc6 2.Nxd6 f5) -4.75/3 3} 13. Nxd6 Qc6 {(1. ... Qc6
2.Bxh6) -5.16/2 3} 14. Bxh6 Qxd6 {(1. ... Qxd6 2.Bxg7 Rg8) -5.19/3 3} 15.
c5 Qc6 {(1. ... bxc5 2.Bxg7) -4.14/2 3} 16. Be4 d5 {(1. ... d5 2.cxd6 Qxd6)
-5.80/3 2} 17. cxd6 Qxd6 {(1. ... Qxd6) -5.80/1 2} 18. Bxg7 Ba6 {(1. ...
Ba6 2.Bf6+ Kc8) -5.11/3 2} 19. Qe3 Bxf1 {-4.94/3 2} 20. Bxa8 Rg8 {-4.83/2
2} 21. Be5 Rxg2+ {-7.06/3 2} 22. Kxf1 Rxf2+ {-10.87/3 2} 23. Kxf2 Qb4 {(1.
... Qb4 2.Rb1) -10.91/2 2} 24. Rg1 Qxb2+ {(1. ... Qxb2+ 2.Qe2 Qxe2+)
-9.80/3 2} 25. Nd2 Na6 {(1. ... Nd7 2.Rg8+ Ke7) -9.57/3 2} 26. Rg8+ Kd7
{(1. ... Ke7 2.a4) -9.73/2 2} 27. Rg7 Ke7 {(1. ... Ke7 2.h4) -9.73/2 2} 28.
Qg5+ Ke8 {-9.79/4 2} 29. Bc6+ Kf8 30. Bd6# 1-0[/pgn]
Re: MadChess 2.0 Released
It will run on 64 bit machines, yes.Your engine is 64-bit, isn't it?
The engine is compiled for "Any CPU", so the .NET JIT compiler will produce machine code for 32 bit or 64 bit machines. While my engine makes use of 64 bit structures, it's a mailbox engine, not a bitboard engine. It's not specifically engineered for 64 bit architecture.
Thanks for the sample game Ferdinand. MadChess doesn't use an internal book, so it may play the opening strangely when limited in strength and without help from the GUI. I haven't tuned the Limit Strength code. It needs some attention. I should limit dumb king moves in the opening, unless playing at a really weak ELO.Sample game at elo 1200.
Thanks for the well wishes everyone.
My C# chess engine: http://www.madchess.net
Re: MadChess 2.0 Released
fern wrote:Great news, Erik
I will play your last engine.
Respect your marriage, be sure to have a friend at the gate of the church waiting in a car with the engine running, you never know...
Better running than chased regards
Fern

Political correctness is a straightjacket.
-
Dann Corbit
- Posts: 8662
- Joined: Wed Mar 08, 2006 7:57 pm
- Location: Redmond, WA USA
- Contact:
Re: MadChess 2.0 Released
Thanks.
I get about 1M NPS (64 bit build), which is pretty good for a dotnet engine.
I added a line to ucinewgame to initialize the board:
because it makes debugging easier for me (uci->ucinewgame->go infinite).
Congratulations on getting married.
I get about 1M NPS (64 bit build), which is pretty good for a dotnet engine.
I added a line to ucinewgame to initialize the board:
Code: Select all
private void UciNewGame()
{
// Reset cache.
_cache.Reset();
// Reset killer moves and move history.
_killerMoves.Reset();
_moveHistory.Reset();
[b] _board.SetupPosition(_startPositionFen);[/b]
}
Congratulations on getting married.



