Posts

Showing posts with the label chess engines

GarboChess 3 for Andoid

Image
Jim Ablett kindly ported Gary Linscott's engine GarboChess 3 to various platforms, including Android. I also made a dynamically linked binary available at the UCI engines for Android website . As can be seen in the screenshot below, the UCI engines does not provide many options, but it plays strong. Below the results of several quick matches on a Nexus S using random book opening play, one second-per-move, 32MB hash, and 8MB tablebases cache with the 3- and 4-piece Nalimov, Gaviota, Scorpio, Robbobases endgames on SD card. GarboChess3  - Stockfish 2.1         +0/-10/=0    0.00%  - Komodo32 2.03 AB      +0/-10/=0    0.00%  - IvanHoe-Beta v999947c +0/-10/=0    0.00%  - Pepito v1.59          +3/-4/=3    45.00%  - GarboChess3 JA        +2/-3/=5    45.00%  - GNU Chess 5.07.170.7b +7/-3/=0    70.00%  - Gaviota v0.83.0.3     +7/-3/=0    70.00%  - Rotor 0.6a            +6/-2/=2    70.00%  - RedQueen 0.9.8        +9/-1/=0    90.00%  - BikJump v2.1P         +9/-0/=1    95.00%

New Top Android Engine Tournament

To test recently released versions of Android engines, I conducted a new tournament between the top UCI engines on a Nexus One using a random book opening play, one second-per-move, 32MB hash, and 8MB tablebases cache with the 3- and 4-piece Robbobases endgames on SD card. Congrats again to the Stockfish team!                        1         2         3         4         5 1 Stockfish 2.1            *     54.0-46.0 60.5-39.5 64.5-35.5 65.5-34.5 244.5/400 2 Komodo32 2.03 AB     46.0-54.0     *     46.5-53.5 52.5-47.5 66.0-34.0 211.0/400 3 Critter 1.2 32-bit   39.5-60.5 53.5-46.5     *     51.5-48.5 58.0-42.0 202.5/400 4 RobboLito 0.085e4l   35.5-64.5 47.5-52.5 48.5-51.5     *     62.0-38.0 193.5/400 5 IvanHoe-Beta 999947c 34.5-65.5 34.0-66.0 42.0-58.0 38.0-62.0     *     148.5/400

Critter 1.2 for Android

Image
Richard Vida released Critter 1.2 for various platforms, including ARM-based Android devices. Below you can see some screenshots of this UCI engine running in Chess for Android . To get a rough idea of the strength of this new engine, I conducted a few quick matches with other engines on a Nexus One using a random book opening play, one second-per-move, 32MB hash, and 8MB tablebases cache with the 3- and 4-piece Nalimov, Gaviota, Scorpio, Robbobases endgames on SD card. More games upcoming. Critter 1.2  - RobboLito 0.085e4l     3.5 - 6.5  +2/-5/=3   35.00%  - Komodo32 2.03 AB       5.0 - 5.0  +4/-4/=2   50.00%  - Stockfish 2.1          6.0 - 4.0  +4/-2/=4   60.00%  - GNU Chess 5.07.170.7b  7.0 - 3.0  +7/-3/=0   70.00%  - Gaviota v0.83          8.0 - 2.0  +7/-1/=2   80.00%  - Rotor 0.6a             9.5 - 0.5  +9/-0/=1   95.00%  - Toga II 1.4.1SE        9.5 - 0.5  +9/-0/=1   95.00%  - RedQueen 0.9.8        10.0 - 0.0 +10/-0/=0  100.00%  - BikJump v2.1P         10.0 - 0.0 +10/-0/

Komodo 2.03 available

Image
The new Komodo has been heavily tested by many chess fans, and Larry and Don had to make a few bug fixes. You can find an Android binary of the latest version 2.03 at the usual place . Quick tournament on a Nexus S: 1   Komodo32 2.03 AB  +34/-23/=43 55.50%   55.5/100 2   Komodo32 2.01 AB  +23/-34/=43 44.50%   44.5/100

More Komodo2 for Android

Another tournament between the top engines on a Nexus One, 32MB hash, one-second per move.                      1           2           3                                    1 Stockfish 2.0      ***         48.5 - 51.5 59.0 - 41.0 107.5/200 2 RobboLito 0.085e4l 51.5 - 48.5 **          50.0 - 50.0 101.5/200 3 Komodo32 2.01 AB   41.0 - 59.0 50.0 - 50.0 **           91.0/200

Komodo2 for Android

Don Dailey and Larry Kaufman released version 2 of their chess engine Komodo. You can find an ARM-based Android binary on UCI engines for Android . The new release seems stronger than the already impressive previous version. A quick one second-per-move, 32MB hash tournament on a Nexus S against Komodo1.3 resulted in 73 vs. 27 in favor of Komodo2. 1   Komodo32 2AB     +58/-12/=30 73.00%   73.0/100 2   Komodo32 1.3 JA  +12/-58/=30 27.00%   27.0/100 The new Komodo scored 48.5% against Stockfish 2.1 under the same settings. 1   Stockfish 2.1  +38/-35/=27 51.50%   51.5/100 2   Komodo32 2AB   +35/-38/=27 48.50%   48.5/100

Top Android UCI Engine Tournament

After this previous tournament , I conducted a tournament between various versions of the top engines under the same settings with more games. The results are shown below. Congrats to the stockfish team for winning this tournament!                            1 Stockfish 2.0           323.5/500 2 Stockfish 2.1           316.5/500 3 RobboLito 0.085e4l      250.5/500 4 RobboLito 0.085g3l      240.0/500 5 IvanHoe-Beta v999947c   196.5/500 6 Komodo32 1.3 JA         173.0/500

Android UCI Engine Tournament

I conducted a full tournament between 17 currently available UCI engines for Android as well as the simple built-in Java engine. The tournament consisted of pair-wise matches between all engines for 10 games with random book opening play, one second-per-move, 32MB hash, and 8MB tablebases cache with the 3- and 4-piece Nalimov, Gaviota, Scorpio, Robbobases endgames on SD card. The 1530 games lasted about two days running full time on a Nexus One phone (without a single crash!). The results are shown below. 1  Stockfish 2.0                   157.5/170 2  RobboLito 0.085g3l              152.5/170 3  IvanHoe-Beta version 999947c    145.0/170 4  Komodo32 1.3 JA                 137.0/170 5  Toga II 1.4.1SE                 130.5/170 6  Pepito v1.59                    104.0/170 7  Daydreamer 1.75 JA              100.5/170 8  Rotor 0.6a                       98.0/170 9  gaviota v0.80.0.107              87.5/170 4647.75 10 GNU Chess 5.07.170.7b            87.5/170 4455.25 11 RedQuee

Android StockFish Tournament

Another test tournament between different Android Stockfish versions and compilations (from Jim Ablett and myself ).            1          2          3          4          5          6           1 2.0      ********** 01½11½01½0 0½1½0100½½ 010½½½½½½1 ½1011½½½½1 ½11001½½11 27.5/50 2 2.1 JA   10½00½10½1 ********** 1½½1½1½100 ½½11½00111 1½011½½010 1½00001½1½ 27.0/50 3 2.1.1 JA 1½0½1011½½ 0½½0½0½011 ********** ½½½1½10½½½ 0½0010½½½½ ½½1½101½½1 25.5/50 4 1.9      101½½½½½½0 ½½00½11000 ½½½0½01½½½ ********** 100½1½0½1½ 1½10½0111½ 24.5/50 5 2.1      ½0100½½½½0 0½100½½101 1½1101½½½½ 011½0½1½0½ ********** ½½010½0101 24.0/50 6 1.8      ½00110½½00 0½11110½0½ ½½0½010½½0 0½01½1000½ ½½101½1010 ********** 21.5/50

Komodo for Android

Image
Don Dailey and Larry Kaufman released their chess engine  Komodo 1.3  for Android, kindly compiled by Jim Ablett and made available at his excellent Jim Ablett's Chess Projects Website (where you can find many more engines). Below you see some screenshots importing the UCI engine into Chess for Android . The engine is strong. The following cross-table shows the results of a few one-second-per-move matches with other engines on a Nexus S (1GHz Hummingbird) with 32MB hash and Nalimov/Gaviota/Scorpio/Robbobases endgame tablebases on SD card. Komodo 1.3 - RobboLito 0.085e4l     2.5 - 7.5  +2/-7/=1  25.00%            - IvanHoe-Beta v999947c  3.0 - 7.0  +2/-6/=2  30.00%            - Stockfish 2.0          4.0 - 6.0  +2/-4/=4  40.00%            - RobboLito 0.085g3l     5.0 - 5.0  +4/-4/=2  50.00%            - Toga II 1.4.1SE        7.0 - 3.0  +6/-2/=2  70.00%            - Rotor 0.6a             9.5 - 0.5  +9/-0/=1  95.00%            - BikJump v2.1P         10.0 - 0.0 +10/-0/=0 100.0

RobboBases in Chess for Android

Image
Chess of Android supports setting up Nalimov, Gaviota, and Scorpio endgame tablebases on the SD card, but Robbobases were missing. Therefore, I added support for RobboTotalBases as well. I tested the setup with the UCI engine IvanHoe 999947c (modified slightly to relax file permissions when reading) and the /3 and /4 piece directories on the SD card. The engine reports info string 66 RobboTotalBases registered with 2499 indici 0mb and plays simple endgames flawlessly afterwards. The setup will be in the next release of Chess for Android.

GreKo Chess Engine

Image
I compiled Vladimir Medvedev's UCI engine GreKo for Android (ARM) for use in  Chess for Android  and put the binary on UCI engines for Android (with kind permission of Vladimir). Below a screenshot and the results of a few quick matches with other engines on a Nexus S (1GHz Hummingbird) with 32MB hash and Nalimov/Gaviota/Scorpio endgame tablebases on SD card. Greko 8.0 - RobboLito 0.085e4l     0.0 - 10.0  +0/-10/=0   0.00% Greko 8.0 - IvanHoe-Beta v999947c  0.5 - 9.5   +0/-9/=1    5.00% Greko 8.0 - Stockfish 2.0          1.0 - 9.0   +1/-9/=0   10.00% Greko 8.0 - Rotor 0.6a             3.0 - 7.0   +2/-6/=2   30.00% Greko 8.0 - Gaviota v0.80.0.107    5.5 - 4.5   +4/-3/=3   55.00% Greko 8.0 - GNU Chess 5.07.153.3b  6.0 - 4.0   +6/-4/=0   60.00% Greko 8.0 - RedQueen 0.9.5         6.5 - 3.5   +5/-2/=3   65.00% Greko 8.0 - BikJump v2.1P         10.0 - 0.0   +10/-0/=0 100.00% Greko 8.0 - ZCT-0.3.2500          10.0 - 0.0   +10/-0/=0 100.00%

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

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

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 .

Animation of Engine Moves

Because it is hard to print all information from the UCI engine on the phone screen, I am toying with a feature where the current move considered by the UCI engine is shown graphically. Below is a short demo of this feature. Let me know what you think!

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.

Chess for Android 2.3

Image
Version 2.3 of Chess for Android has following changes: replay buttons for full game navigation improved draw detection added two levels (longer thinking time) more efficient game storage in memory There are now five on-screen buttons. The first one is: ← : undo button, accepted any time to correct mistakes (even when engine is thinking), discarding all subsequent moves when used during navigation The replay buttons are useful to navigate through a game without discarding any moves. These buttons are only accepted when the engine is not thinking, and work as follows: << : goes to beginning of current game <  : steps back one move >  : steps forward one move >> : goes to end of current game During navigation, all subsequent moves not played yet are greyed out (see screenshot). Playing any move while navigating (including switching sides) discards all following moves (even if the moves matches the subsequent play; use replay buttons to maintain the