thorsilver / spacedog Goto Github PK
View Code? Open in Web Editor NEWChess engine based on VICE, written in C.
License: GNU General Public License v3.0
Chess engine based on VICE, written in C.
License: GNU General Public License v3.0
Hello thorsilver,
can you make a Windows 32 or 64 bit binary of Space Dog please? Unfortunately I am not a programmer.
cf. attached files here:
Space Dog logos.zip
Regards,
This version is a big improvement over the ill-fated v0.97.6; some issues still remain.
For Winboard engines there's an option to treat the engine's eval as absolute and I took advantage of that when running the 40/40 gauntlet. However
Using the InBetween adapter I was able to record what happens between the engine and the GUI:
0.000: - Starting server: SpaceDog_TBs-09751.exe nobook
0.016: - Priority class set to normal
0.016: - Thread priority set to normal
0.016: > xboard
0.016: > protover 2
0.032: < HashTable init complete with 2796200 entries
0.032: < Book File Not Read
0.032: <
0.032: < Welcome to SpaceDog! Type 'dog' to play in console mode.
0.032: <
0.032: < SpaceDog > command seen:rotover 2
0.032: <
8.003: > new
8.003: < command seen:new
8.003: > force
This does not occur when entering the commands manually in the console, so I suspect that SpaceDog is too slow to react to the GUI's commands on the startup as it's busy initializing the hashtable and printing its own stuff which may be blocking its I/O.
I managed to circumvent the issue by having InBetween issue a blank line followed by an extra "xboard" command after that of the GUI, so in effect SpaceDog receives this:
xboard
xboard
protover 2
everything goes as expected then. That's how the above-mentioned gauntlet was run; it's now complete and SpaceDog is on the 40/40 list. I expect you might be as surprised by its results as I was. :)
In UCI mode SpaceDog incorrectly reports its version via the "id name" string as "1.0". All releases since v0.97.1 are affected.
In UCI mode when SpaceDog plays Black the eval sign appears to be inverted, i.e it reports its score in centipawns without the minus sign when losing. E.g. it loses a piece and shows a "+3.xx" eval (as translated by the GUI). A sample game:
[Event "SpaceDog 0.97.6 64-bit 40/40"]
[Site "Dual X5670"]
[Date "2019.03.08"]
[Round "1"]
[White "King's Out 0.2.42 64-bit"]
[Black "SpaceDog 0.97.6 64-bit"]
[Result "1-0"]
[ECO "B13"]
[GameDuration "00:36:18"]
[GameEndTime "2019-03-08T23:17:13.298 Eastern Standard Time"]
[GameStartTime "2019-03-08T22:40:54.589 Eastern Standard Time"]
[Opening "Caro-Kann"]
[PlyCount "73"]
[TimeControl "40/1260"]
[Variation "Panov-Botvinnik, Czerniak Variation"]
1. e4 {book} c6 {book} 2. d4 {book} d5 {book} 3. exd5 {book} cxd5 {book}
4. c4 {book} Nf6 {book} 5. Nc3 {book} Nc6 {book} 6. Bg5 {book} Qa5 {book}
7. Bxf6 {+0.79/14 28s} exf6 {+0.22/12 37s} 8. cxd5 {+0.77/14 51s}
Bb4 {+0.11/13 37s} 9. Qd2 {+0.41/13 36s} Bxc3 {+0.03/13 37s}
10. bxc3 {+0.33/15 28s} Qxd5 {+0.04/13 37s} 11. O-O-O {+0.26/14 39s}
Be6 {-0.08/12 37s} 12. c4 {+0.34/14 32s} Qd6 {-0.18/12 37s}
13. d5 {+0.37/14 93s} O-O-O {-0.44/12 37s} 14. Qc3 {+0.35/13 96s}
Qc5 {-0.46/12 37s} 15. dxc6 {+1.69/13 21s} Rxd1+ {-2.77/12 37s}
16. Kxd1 {+1.59/14 50s} b5 {-0.33/11 37s} 17. Nf3 {+2.04/13 27s}
b4 {-0.16/11 37s} 18. Qe3 {+2.31/14 57s} Qa5 {0.00/12 37s}
19. Qb3 {+2.49/13 25s} Rd8+ {+1.05/12 37s} 20. Kc1 {+2.42/13 37s}
g5 {+0.79/12 37s} 21. h4 {+3.01/13 43s} g4 {0.00/13 37s} 22. Ne1 {+2.64/14 60s}
Qe5 {0.00/13 37s} 23. Bd3 {+2.93/14 54s} Kc7 {+0.50/12 37s}
24. Qxb4 {+3.40/13 49s} Rb8 {0.00/13 37s} 25. Qe7+ {+3.58/13 33s}
Kc8 {0.00/11 37s} 26. Qxa7 {+4.18/13 33s} f5 {0.00/11 37s}
27. Nc2 {+4.85/14 37s} Rb2 {+0.49/11 37s} 28. c5 {+7.82/14 30s}
Rb8 {+5.81/13 37s} 29. Qa5 {+11.00/14 30s} Rb2 {+10.80/13 37s}
30. Ba6+ {+13.62/14 27s} Kb8 {+12.45/12 37s} 31. Rd1 {+20.40/14 25s}
Rxc2+ {+299.80/12 37s} 32. Kxc2 {+M14/14 14s} Bb3+ {+299.86/12 37s}
33. Kxb3 {+M10/10 0.45s} Qe6+ {+299.92/13 37s} 34. Ka3 {+M8/4 0.30s}
Qxc6 {+299.92/12 37s} 35. Rb1+ {+M6/4 0.31s} Ka7 {+299.96/12 37s}
36. Bf1+ {+M4/7 0.33s} Qa6 {+299.98/13 37s} 37. Qxa6# {+M2/5 0.31s, White mates}
1-0
Besides looking daft this makes adjudication by GUI impossible.
step
curl -LC - https://github.com/thorsilver/SpaceDog/releases/download/v0.97.7/SpaceDog-Linux -o spacedog
chmod +x spacedog
cp spacedog /bin/
problem
no move suggestion or score valuation when using wih python chess (tested on google colab)
thanks and best regards
In response to the "xboard" command SpaceDog sends its "feature" list. This behavior is incorrect; the feature list should be sent in response to the "protover"/"protover 2" command.
A direct consequence of this nonstandard behavior is that under Cute Chess GUI SpaceDog can only play with the default hash (~64 MB) as the GUI doesn't register the "feature memory=1" command. In fact it misses the entire section of the feature list before "feature egt", viz:
<SpaceDog 0.97.6 64-bit(54): HashTable init complete with 2796200 entries
<SpaceDog 0.97.6 64-bit(54): Using default opening book: BookFish!
<SpaceDog 0.97.6 64-bit(54): Book File Not Read
<SpaceDog 0.97.6 64-bit(54): Welcome to SpaceDog! Type 'dog' to play in console mode.
<SpaceDog 0.97.6 64-bit(54): SpaceDog > feature ping=1 setboard=1 colors=0 usermove=1 memory=1
<SpaceDog 0.97.6 64-bit(54): feature egt="syzygy"
>SpaceDog 0.97.6 64-bit(54): accepted egt
<SpaceDog 0.97.6 64-bit(54): feature done=1
>SpaceDog 0.97.6 64-bit(54): accepted done
>SpaceDog 0.97.6 64-bit(54): egtpath syzygy e:\345
>SpaceDog 0.97.6 64-bit(54): new
>SpaceDog 0.97.6 64-bit(54): force
>SpaceDog 0.97.6 64-bit(54): level 40 21 0
>SpaceDog 0.97.6 64-bit(54): post
>SpaceDog 0.97.6 64-bit(54): easy
<SpaceDog 0.97.6 64-bit(54): command seen:rotover 2
<SpaceDog 0.97.6 64-bit(54): command seen:accepted egt
<SpaceDog 0.97.6 64-bit(54): command seen:accepted done
<SpaceDog 0.97.6 64-bit(54): command seen:egtpath syzygy e:\345
<SpaceDog 0.97.6 64-bit(54): Using TB file path: e:\345
<SpaceDog 0.97.6 64-bit(54): Using Syzygy tablebases for 5 pieces or less!
<SpaceDog 0.97.6 64-bit(54): command seen:new
<SpaceDog 0.97.6 64-bit(54): command seen:force
<SpaceDog 0.97.6 64-bit(54): command seen:level 40 21 0
<SpaceDog 0.97.6 64-bit(54): DEBUG level without :
<SpaceDog 0.97.6 64-bit(54): DEBUG level timeLeft:1260000 movesToGo:40 inc:0 mps40
<SpaceDog 0.97.6 64-bit(54): command seen:post
<SpaceDog 0.97.6 64-bit(54): command seen:easy
Note the "command seen:rotover 2" line, SpaceDog doesn't manage to parse the GUI's commands properly.
CECP v2 specs: http://home.hccnet.nl/h.g.muller/engine-intf.html
v0.97.1 has been tested at CCRL at 40/4 and received a 2088 Elo rating. Another tester ran several hundred games with v0.97.4 for a similar performance (the results will be up after the pending update by Sunday).
A 40/40 test for the latest version, 0.97.6, had to be aborted when SpaceDog scored 0/13 vs. the 2100-rated King's Out. In eight games SpaceDog didn't make it even to the first time control. Thinking there was a problem with the UCI mode I switched to the Xboard mode but SpaceDog continued playing wildly, giving away pieces left and right. Here's a sample blitz game vs. Monik (1955 Elo):
[Event "?"]
[Site "?"]
[Date "2019.03.09"]
[Round "?"]
[White "SpaceDog 0.97.6 64-bit"]
[Black "Monik 2.2.7 64-bit"]
[Result "0-1"]
[ECO "A82"]
[GameDuration "00:01:52"]
[GameEndTime "2019-03-09T03:43:43.701 Eastern Standard Time"]
[GameStartTime "2019-03-09T03:41:50.922 Eastern Standard Time"]
[Opening "Dutch"]
[PlyCount "45"]
[Termination "adjudication"]
[TimeControl "40/120"]
[Variation "Staunton gambit"]
1. d4 {book} f5 {book} 2. e4 {book} fxe4 {book} 3. Nc3 {book} Nf6 {book}
4. f3 {book} exf3 {book} 5. Nxf3 {book} d5 {book} 6. Bd3 {book} g6 {book}
7. Bf4 {+0.12/9 3.5s} e6 {-0.02/8 3.8s} 8. O-O {-0.13/8 3.5s} Bd6 {-0.02/8 3.7s}
9. Bh6 {-0.21/9 3.5s} Rg8 {+0.04/8 3.7s} 10. Nb5 {0.00/9 3.5s}
Nc6 {+0.02/7 3.7s} 11. Ng5 {+0.94/11 3.5s} Be7 {-0.27/7 3.7s}
12. Nxh7 {+0.95/11 3.5s} Nxh7 {-0.03/8 3.7s} 13. Qg4 {+1.01/11 3.5s}
Nf6 {+1.89/8 3.7s} 14. Bxg6+ {+0.91/11 3.5s} Kd7 {+2.95/9 3.7s}
15. Qxe6+ {0.00/12 3.5s} Kxe6 {+8.81/3 0.19s} 16. Bg7 {0.00/12 3.5s}
Rxg7 {+11.72/10 3.8s} 17. Rae1+ {-7.19/13 3.5s} Kd7 {+11.72/10 3.8s}
18. Rxf6 {-7.19/12 3.5s} Nxd4 {+13.47/9 3.8s} 19. Nxd4 {-9.06/12 3.5s}
Bxf6 {+13.74/9 3.8s} 20. Bf5+ {-11.71/12 3.5s} Kd6 {+13.54/3 0.21s}
21. Nb5+ {-12.81/12 3.5s} Kc5 {+15.25/9 3.9s} 22. b4+ {-12.68/10 3.5s}
Kxb5 {+18.50/9 3.9s} 23. Bd3+ {-16.67/11 3.5s, Black wins by adjudication} 0-1
Note that on move 15 SpaceDog, already a piece down, gives up the queen for the e6-pawn and a few checks. A 2088-rated engine wouldn't play like that. Clearly, some changes since v0.97.4 cost SpaceDog hundreds Elo points.
Tirsa@CCRL
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.