DoubleCheck 2.0 is out

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
lucasart
Posts: 3232
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

DoubleCheck 2.0 is out

Post by lucasart »

Hello everyone,

I released a new version of my program DoubleCheck 2.0: http://wbec-ridderkerk.nl/html/download.htm

User visible changes are

- improved evaluation, which should make it play more accurately from a positional perspective, especially pawn structures. Note however that the search algorithm is untouched, so tactical skills should be the same as before
- ability to handle fixed depth search, fixed number of nodes, or infinite search (although the UCI stop command is only handled on POSIX and untested)
- bug fixed on the time allocation, which could cause DoubleCheck to lose on time. Now it should never lose on time, provided the UCI interface is not lagging: I use cutechess-cli so no problem there, but you never know with things like Arena etc.

I ran some tests and it scored +110 elo against version 1.3.1, meaning ~2300 elo on CCRL 40/40. Although I expect a little less, since self testing isn't as accurate as testing against a varied population of opponents.

As usual I provide a Linux-64 and Windows-64 binary and the windows one is untested, since I don't have Windows on my computer. Let me know if it works for you. Otherwise the code is ISO C99 and you should be able to compile on any plateform (even 32 bit). In particular it should still compile for Mac OS X and Google Android.

Regards,
Lucas
User avatar
abik
Posts: 819
Joined: Fri Dec 01, 2006 10:46 pm
Location: Mountain View, CA, USA
Full name: Aart Bik

Re: DoubleCheck 2.0 is out

Post by abik »

lucasart wrote:In particular it should still compile for Mac OS X and Google Android.
Hi Lucas,
I would be happy to oblige, but all header files seem missing in the download I could find?
Aart
User avatar
lucasart
Posts: 3232
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: DoubleCheck 2.0 is out

Post by lucasart »

abik wrote:
lucasart wrote:In particular it should still compile for Mac OS X and Google Android.
Hi Lucas,
I would be happy to oblige, but all header files seem missing in the download I could find?
Aart
arf... my mistake! I'll upload a correction.

sorry for that
User avatar
Matthias Gemuh
Posts: 3245
Joined: Thu Mar 09, 2006 9:10 am

Re: DoubleCheck 2.0 is out

Post by Matthias Gemuh »

SzG wrote:
Hi Lucas,

I ran the win64 from the command line, OK, then I typed 'uci', still OK. Now I typed 'go' and it crashed.
You need to specify position and time control.

position startpos
go wtime 60000 btime 60000
My engine was quite strong till I added knowledge to it.
http://www.chess.hylogic.de
User avatar
lucasart
Posts: 3232
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: DoubleCheck 2.0 is out

Post by lucasart »

Indeed the go command needs parameters. here are the ones that DoubleCheck can hanfle:

Code: Select all

go movetime 10000
go wtime 120000 winc 1000 btime 120000 binc 1000
go nodes 150000
go depth 8
go infinite
Note that depth/movetime/nodes can be combined, for example

Code: Select all

go nodes 100000 movetime 150 depth 7
means the search will stop whenever the first condition is met between: 100000 nodes (exactly) have been searched, 150ms has elapsed, and depth 7 is finished

I also introduced a new command"eval", use as follows:

Code: Select all

position startpos moves e2e4
eval
 r n b q k b n r
 p p p p p p p p
 . . . . . . . .
 . . . . . . . .
 . . . . P . . .
 . . . . * . . .
 P P P P . P P P
 R N B Q K B N R

eval = -34
I use it to debug my eval, and it can be interesting if you want to know how DoubleCheck evaluates positions. You'll see that it understands unstoppable passed pawns when the opponent has no pieces, and passed pawns are incentivised, especially connected passed pawns, and especially as there are few pieces on the board and the passed pawns are advanced.
Also new are pawn features in the eval such as: doubled, isolated, chained, backward
User avatar
abik
Posts: 819
Joined: Fri Dec 01, 2006 10:46 pm
Location: Mountain View, CA, USA
Full name: Aart Bik

Re: DoubleCheck 2.0 is out

Post by abik »

lucasart wrote:arf... my mistake! I'll upload a correction.
I see you posted a correction. Thanks.

I compiled and uploaded DoubleCheck 2.0 for Android (ARMv5TE)) to the UCI and XBoard engines for Android site.

Note that this version cannot replace DoubleCheck 1.3 in the ongoing Android engine tournament since the tournament of Group E is almost finished. If DoubleCheck promotes to Group D, however, I will use the latest version I just compiled.
User avatar
Jim Ablett
Posts: 1384
Joined: Fri Jul 14, 2006 7:56 am
Location: London, England
Full name: Jim Ablett

Re: DoubleCheck 2.0 is out

Post by Jim Ablett »

Image
Doublecheck 2.0 JA by Lucas Braesch

Windows/Linux/Android 64/32 p.g.o

Download:
http://dl.dropbox.com/u/5047625/doublecheck-20-ja.zip
Mirror:
http://cl.ly/BZUf/doublecheck-20-ja.zip


I made a few small tweaks such as fixing the windows polling.

Jim.
User avatar
Jim Ablett
Posts: 1384
Joined: Fri Jul 14, 2006 7:56 am
Location: London, England
Full name: Jim Ablett

Re: DoubleCheck 2.0 is out

Post by Jim Ablett »

Mirror link should be: http://cl.ly/BYfb/doublecheck-20-ja.zip

Jim.
User avatar
lucasart
Posts: 3232
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: DoubleCheck 2.0 is out

Post by lucasart »

Thank you so much! Good compiles, with nice logo. And more importantly, I see that you made a windows version for my input_available function :-) I don't know much about Windows API, so I'd never be able to do it myself.

If you don't mind, I'll include this code in the next release. And add a line in the header comment of the uci.* files saying something like "Credits to Jim Ablett for windows polling code" or whatever
User avatar
Jim Ablett
Posts: 1384
Joined: Fri Jul 14, 2006 7:56 am
Location: London, England
Full name: Jim Ablett

Re: DoubleCheck 2.0 is out

Post by Jim Ablett »

lucasart wrote:Thank you so much! Good compiles, with nice logo. And more importantly, I see that you made a windows version for my input_available function :-) I don't know much about Windows API, so I'd never be able to do it myself.

If you don't mind, I'll include this code in the next release. And add a line in the header comment of the uci.* files saying something like "Credits to Jim Ablett for windows polling code" or whatever
Hi Lucas,

Don't credit me. The windows polling stuff (Bioskey()) is from Oliver Brausch (Olithink).
It's been widely used in many Windows engines over the years like Crafty, Beowulf etc.
This is the credit in the Beowulf src >

Code: Select all

/* Bioskey checks for input waiting in stdin.
 * Credit here goes to Dr Oliver Brausch for the code from his
 * program Olithink.  Some rewriting has been done by CMF, but not much
 * as I have absolutely no idea whatsoever what this does.
 * I think the original code is from Crafty by Prof. Robert Hyatt. */
I don't think anyone really knows how it works except Oliver. :)

Jim.

p.s (I'm sure Bob Hyatt knows as well!) :)