Friday, April 27, 2012

Tuesday, April 24, 2012

Polyglot for Android

There was an interesting discussion on the TalkChess forum whether a chess GUI running on the Dalvik Virtual Machine could merely support a single protocol, and use an adapter, like Polyglot, to support other protocols. Even though Chess for Android already supports both UCI and XBoard/WinBoard, I was intrigued by the question, and decided to give it a try. First, I compiled the polyglot sources for ARM-based Android devices (I had to make a few source changes to make that work). Then I edited a polyglot.ini file pointing to my own UCI engine bikjump1.8 compiled for ARM:

[Polyglot]
EngineCommand=bikjump1.8
EngineName=BikJumpAsXBoard
EngineDir=/data/local/tmp/
[Engine]


And gave it a try directly from the command line:

$ ./polyglot_for_android
PolyGlot 1.4.67b by Fabien Letouzey.
new
st 1
post
go
1 -1 0 1 h4
1 +0 0 3 h3
1 +2 0 6 g3
1 +12 0 20 Nh3
1 +17 0 22 Nf3
2 +0 0 46 Nf3 Nf6
3 +17 0 148 Nf3 Nf6 Nc3
4 +0 1 772 Nf3 Nf6 Nc3 Nc6
5 +2 2 1691 Nf3 Nf6 Nc3 Nc6 g3
6 +0 5 3120 Nf3 Nf6 Nc3 Nc6 g3 g6
7 +5 8 6163 Nf3 Nf6 Nc3 Nc6 g3 g6 Bg2
8 +0 14 13282 Nf3 Nf6 Nc3 Nc6 g3 g6 Bg2 Bg7
9 +5 49 57243 Nf3 Nc6 Nc3 Nh6 Nd5 Nf5 b3 g6 Bb2
9 +5 49 81920 Nf3 Nc6 Nc3 Nh6 Nd5 Nf5 b3 g6 Bb2
move g1f3


So far, so good! I then tried the same approach in Chess for Android. After installing the polyglot_for_android binary, polyglot.ini file and of course bikjump1.8, I could start polyglot_for_android as XBoard engine, but under water talking to the UCI engine bikjump1.8. So, in principle, one could simply implement one protocol in the GUI, and rely on the adapter to support the other protocol.


Wednesday, April 4, 2012

Temporary Chess Server

As a follow-up on the previous posting and for users that want to experiment with a remote chess server without setting one up themselves, I have, very temporarily, set up a remote chess server with various engines at ports 2000 through 2005 on aartbik.dyndns.org. Simply type this hostname and one of the ports in Chess for Android and let me know if you were able to connect!