Maverick 0.5 has been in the wild for about a month. I’m pleased to say it seems to be playing at 2300 ELO or above.
However, occasionally it would crash. This really niggled me.
I do quite a lot of turbo-testing using CuteChess-Cli at fast time controls. So I had convinced myself the occasional crash was probably an overload of the standard input and output pipes (I’m not even sure if this is possible). However, since I’ve tested Maverick quite thoroughly using perft positions, I was confident the basic chess engine routines were bug free. I was wrong.
This week I have been down in São Paulo Brazil on business. Graham Banks has been testing Maverick and broadcasting the games. Since I had nothing better to do I logged in and watched a few games. It’s amazing how nerve wracking it is to watch your engine play a game at 40 moves in 40 minutes. As I was watching, and to my surprise, Maverick suddenly crashed. I quickly copied the position and thankfully was able to reproduce the crash!
The bug was quite bizarre. Take a look at the position below:
After black has played pawn to g4, white is in check from the queen on h6. However, the code which finds the source of the check is shown below:
This was a “copy and paste” error. The code thinks the knight on c2 is actually a king attacking the white king. This was the bug. It was easy to fix. Hopefully this will result in no more crashed.
You can downloaded the fixed version (Maverick 0.51) on the Download Page. There are really no strength improvements for this bug-fix release. If you are testing Maverick you can keep the games already played.