Posts

Showing posts with the label chess

Android UCI Engines with Parallel Search

Image
Multi-core Android devices are becoming more widespread. Therefore, v2.8.2. of Chess for Android, available from the Android Market or as direct download , adds support for setting up UCI engines with parallel search. Unfortunately, the UCI protocol did not standardize the option name for parallel search (despite some efforts ) so the GUI simply looks in the UCI engine output for commonly used option names like "Cores", "Processors", "Threads", and "CPUs". The GUI then presents this choice in the option setup window (always labeled as CPUs), and eventually sends any selected value back to the engine using the recognized option name. Please let me know if you would like to see alternative option names for other UCI engines on Android with parallel search. As for all other options, only option values supported by the engine can be selected in the setup window. Below a screenshot of the new UCI option setup window.

Nook Color

Image
Marc F. Ferguson is writing about experiences with rooting the Nook Color on his blog FergyTech and he kindly emailed me the following pictures of Chess for Android running on the Nook Color. It is cool to see so many new devices running Android. Thanks Marc!

RedQueen Chess Engine

Image
I compiled Ben-Hur Carlos Langoni's UCI engine RedQueen for Android (ARM), and put the binary on UCI engines for Android . Below screenshots and results of a few quick matches against other engines on a Nexus One (1GHz Snapdragon) with 32MB hash and Nalimov/Gaviota/Scorpio endgame tablebases on SD card. RedQueen 0.9.5 - Stockfish 2.0          0.0 - 10.0 +0/-10/=0    0.00% RedQueen 0.9.5 - Toga II 1.4.1SE        0.0 - 10.0 +0/-10/=0    0.00% RedQueen 0.9.5 - IvanHoe-Beta v999947c  0.0 - 10.0 +0/-10/=0    0.00% RedQueen 0.9.5 - Rotor 0.6a             3.0 - 7.0  +3/-7/=0    30.00% RedQueen 0.9.5 - GNU Chess 5.07.170.7b  3.0 - 7.0  +1/-5/=4    30.00% RedQueen 0.9.5 - gaviota v0.80.0.107    3.5 - 6.5  +3/-6/=1    35.00% RedQueen 0.9.5 - BikJump v2.1P          8.0 - 2.0  +8/-2/=0    80.00% RedQueen 0.9.5 - ZCT-0.3.2500           8.5 - 1.5  +8/-1/=1    85.00%

Chess for Android 2.8

Image
I just released version 2.8 of Chess for Android, available from the Android Market or as direct download . New features include: full PGN support (clipboard import/export, file load/save) improved layout for xlarge screen sizes (api 9 and up) bug fix in draw detection after FEN import To load a game from a file in PGN format, long press the notation window, select "Load Game from SD", and navigate to the file. This opens another window with the actual games in that file. Then select the desired game. Very large PGN files may take a while to download (or even run out of memory), but the idea is that future versions will be able to navigate quickly between successive games. I have tried to make the PGN parser reasonably robust (it accepts sloppy SAN for instance), but certain non-standard constructs are rejected. Please let me know if you encounter bugs though.

Chess for Android as Client of a Chess Server

User PJ+ at the OpenChess forum implemented a nifty client utility that converts Chess for Android to a client for a remote chess server. To make this work (assuming you already have a remote chess server running at some hostname and port), simply do the following steps. Download the version of Chess for Android that grants network permission to its UCI clients (the default version at the market does not do this for obvious security reasons). Download PJ+'s client-android-cli utility. Construct a file, for example uci_client , that contains the single line ./client-android-cli <hostname > < port > for the hostname and port of the remote chess server. Copy 2. and 3. to SD card, then install these from SD just like the first-time install of UCI engines. Finally, the single line file uci_client can now be imported as any other UCI engine, and will connect to the remote chess server. I tried this method myself connecting Chess for Android as client to a remote c

Rotor on Android

Jan Brouwer ported his UCI engine Rotor  to Android. Below the results of a few matches against other engines on a Nexus One (1GHz Snapdragon), one second-per-move, 16MB hash, and Nalimov/Gaviota/Scorpio endgame tablebases on SD card. Rotor 0.6a - Stockfish 2.0           0.0 - 10.0    +0/-10/=0      0.00% Rotor 0.6a - Toga II 1.4.1SE         0.5 -  9.5    +0/-9/=1       5.00% Rotor 0.6a - gaviota v0.80.0.107     5.5 -  4.5    +5/-4/=1      55.00% Rotor 0.6a - GNU Chess 5.07.170.7b   7.0 -  3.0    +7/-3/=0      70.00% Rotor 0.6a - BikJump v2.1P          10.0 -  0.0    +10/-0/=0    100.00% Rotor 0.6a - ZCT-0.3.2500           10.0 -  0.0    +10/-0/=0    100.00%

Tablets are Coming!

Image
I don't have a tablet myself yet, but Roel from Belgium kindly emailed me this picture of Chess for Android running on a 7 inch tablet. As you can see, he was running an engine-engine match between UCI engines at the time. Thanks Roel!

Direct Downloads

Because not all Android devices support the Android Market yet, I decided to made my Android applications available as direct downloads: Chess for Android Checkers for Android Reversi for Android After the download completes, simply click the apk to start the install (make sure to check "unknown sources" under settings=>applications).

GNUChess Match on Android

Image
I ran an engine-engine match between Michel Van den Bergh's two latest GNUChess engines in Chess for Android , playing 100 games (50 fixed book opening lines from both sides) on a Nexus One (1GHz Snapdragon), one second-per-move, Hash 16MB, TB cache 8MB, complete 3- and 4-piece Gaviota endgame tablebases on SD card (only  5.07.170.7b  supports Gaviota).              1   GNU Chess 5.07.153.3b-32        +42/-33/=25 54.50%   54.5/100 2   GNU Chess 5.07.170.7b-libgtb-3  +33/-42/=25 45.50%   45.5/100

Auto Rotate Chess Pieces

Several folks who use Chess for Android to play against another human have requested a feature to auto rotate pieces towards the side to move, so that they can use the phone or tablet as a chess board without constantly having to pass the device around. I have added this feature and also made cautious steps towards some animation in the application. The following clip shows the results. Expect this feature in an update soon. Comments welcome. Auto Rotation Clip

Chess for Android 2.6

Image
Version 2.6 of Chess for Android adds some choices of board colors and piece sets. To change, press menu, then options, and select either board color or piece set. This brings up another dialog with the choices in colors or piece sets.

Improving Graphics

Image
I got a couple of requests to improve the graphics in Chess for Android, especially now that tablets are becoming more widespread. I found a public domain chess piece set that looks nice and increased the resolution of the wood texture (really just a picture of my coffee table!). I also added a few more board colors. This is how it looks now (click for the full resolution picture). And this is how it may look soon (again click for the full resolution picture). Comments welcome, of course.

Chess for Android 2.5.5

Image
Version 2.5.5 of Chess for Android introduces the following new features. Ability to save games to SD card. Games are appended in PGN format to file  /sdcard/games.pgn  on the SD card, so that users can examine these later, for example, in a chess application on the desktop. Ability to define common UCI engine options in a pop-up window: hash table size ELO strength restriction  endgame tablebases formats (Nalimov, Gaviota, or Scorpio) and cache size The options are populated with the engine's defaults.

Chess for Android 2.5.1

Version 2.5.1 of Chess for Android simplifies installing third party UCI engines quite a bit. Most importantly, it is no longer required to install the Android SDK in order to push binaries to the Android device. Instead, UCI engines can simply be copied to the SD card and, from there, installed into internal memory. A few important links: Updated instructions on installing UCI engines Chess for Android manual   List of UCI engines that can be imported   A big thank you to Michel Van den Bergh for inspiring me to simplify the installation process in Chess for Android!

Chess for Android 2.5

I just released version 2.5 of Chess for Android at the Android market. Besides a few minor improvements, this release introduces the ability to play engine-engine matches automatically. To perform a match: (1) Long-press, import UCI engine, and select primary engine (or skip this step to play against the built-in Java engine), (2) Long-press, engine-engine match, and select secondary engine to start the match. This will play 10 games from random openings at the moves-per-second level selected. During the match, current standing is displayed and engine analysis output is shown at the bottom of the window. Afterwards, the full match annotated with engine analysis is stored in a PGN file.

UCI Engines for Android

I have setup a webpage with  UCI engines for Android . Each entry is either a link to the engine's website, or a direct download of a binary that I compiled myself, posted with explicit permission of the engine authors. Please drop me an email if you know about other UCI engines that have been compiled "natively" for Android.

Engine-Engine Matches on Android

I am extending Chess for Android with a feature to run automatic engine-engine matches between UCI engines that have been "natively" compiled for Android. After importing two UCI engines, or using the built-in Java engine for one, a fixed number of games is played using random openings from the built-in book while allocating a fixed time per move. All games are saved in a "match.pgn" file, which can be used by another chess program, such as Arena or Chessbase. A Chessbase-generated cross-table for a 1-second-per-move tournament between some UCI engines compiled for Android is shown below. I hope to release this feature sometimes early in January.                  1          2          3          4          5 1 Stockfish 1.9  ********** 11½0100101 111111½111 1111111111 1111111111 35.0/40 2 Crab 1.0 beta  00½1011010 ********** 111½1½1111 1111111111 1111111111 33.5/40 3 GNU Chess 5.07 000000½000 000½0½0000 ********** ½½11111110 1111111111 19.5/40 4 BikJump v2.1

King Attacked Warning

Image
It is minor, but the latest release 2.4.3 of Chess for Android now shows a red circle around the king as an in-check (or mate) warning when the move coach is enabled. A sample screenshot is shown below. This version also improves UCI engine unloading on exit.

Chess for Android 2.4.1

Image
I just released version 2.4.1 of Chess for Android with the following changes: Ability to install application on SD card Moved navigation buttons down Few improvements to UCI engine support To verify that UCI engine support works for third party engines as well (not just for BikJump), I downloaded sources of ZCT0.3.2500 (by Zach Wegner) and Crab1.0Beta (by Tord Romstad, Marco Costalba, Joona Kiiski, Adam Kleng) and compiled these "natively" for Android. Importing and playing the engines work fine. As before, instructions on setting up an UCI engine are given at UCI for Android .

Chess for Android 2.4

I just released version 2.4 of Chess for Android at the Android Market with the following new feature: basic UCI engine support (ability to replace built-in Java engine with any third party UCI engine compiled "natively" for Android) Instructions on how to setup an UCI engine are given at UCI for Android . As far as I know currently only BikJump is available as stand-alone UCI engine for Android. Although stronger than the built-in engine, I hope I will be able to add links to much stronger third party UCI engines soon. Please note that support is still rather basic (elaborate setup, only tested on one engine, GUI does not support engine options, time control restricted to time-per-move, position sent as FEN, making the engine more prone to three-fold repetition, no tournaments, etc.). Nevertheless, I hope it is an interesting start.