The Belofte manual.

Belofte is a promising chess program. 

About

Belofte is a Flemish word that can be translated as 'a Promise' or 'someone with potential'.  In this context, the latter is the intended meaning.  The most correct translation would be 'A promissing chess program'.  It is pronounced as 'b-euh-loft-euh'.

The chess program comes without user interface but is compatible with xboard.  This means, it can be used as a plug-in for the majority of all commercial and free chess programs.  At this moment, it has been tested on Mac OS X.  There is nothing that stops it from being used on any version of Windows or UNIX or Linux, if one would like to make such a version.

The current strength of Belofte is about 1200 elo at freechess.org. 

Translations

Language
Native translation
Name of application.
English
English
Belofte - A promising chess program
Flemish /  Dutch
Vlaams / Nederlands
Belofte schaak
French
Français
Promesse échecs
German
Deutsch
Schach
Spanish
Español
Ajedrez
Russian Русский
Шахматьі

Evolution of strength

The version has undergone some enhancements over the different versions.  Some were not always correct.  For a history of the different versions, and their reflection on the ELO obtained, please consult the table below.

Version
Released
Elo
Comments
0.1

680
First version
0.2.2

???
Internal development version
0.2.4

???
Internal development version
0.2.5

1038
Internal development version
0.2.6

1190
Opening book implemented.  Rating obtained after 6600 games.  Top rating 1294.
0.2.7
19/03/2005
1130
Mac OS X version.  Saving multiple times same game resolved.  Slight change in evaluation function.
Windows version available.  Linux version available. 
0.2.8
17/05/2005
950
Added opening book colour transposition and better balancing of good moves in opening book.  Better handling of shorter games.  Correction of castling information.
Adding partial comments for autodoc.  Documentation available.  License conditions added.   Rename of binary book and taking into account Intel Mac for opening books.
0.3.0 net yet Conversion to Universal binary, a lot of optimizing. But still not finished. It plays from time to time on the internet and while under development.

Using Belofte

On Mac OS X (before Tiger 10.0, 10.1, 10.2, 10.3)

It can be run from the command line.
It can be run from a script that will launch XBoard using the engine.  XBoard requires X11.
It can be run from a script that will launch XBoard using the zippy interface and the engine to connect to ICS.  XBoard requires X11.
Minimum requirement is a G3 with 32 MB ram plus the requirements of X11.

It can be played against on freechess.org when the application is on-line.  You will require Fixation or another ICS client.

On Mac OS X (10.4/Tiger/PPC)

This software has not been tested on this platform.  If you have this platform available and want to co-operate, please mention so that the port can be done.

On Mac OS X Intel (x86)

Universal binary available. Same as PPC version.

On Windows 95, 98, Me, 2000, XP, Longhorn

Thanks to Roland Marquis, I now have a Windows binary that works on i386 machines.

It can be played against on freechess.org when the application is on-line.  You will require Winboard as an interface.  You can also select one of the other interfaces that are available.

On Linux x86, Linux x86-64

Thanks to Roland Marquis, I now have a Linux binary that works on i386 32 bit machines. You can download the Linux binary from the site as well.

Compile with the options:
gcc -o belofte alg1_board.c alg1_book.c alg1_eval.c alg1_moves.c alg1_search.c belofte.c board.c usercmd.c
It can be played against on freechess.org when the application is on-line.  You will require Xboard as an interface.  You can also select one of the other interfaces that are available.

Linux PPC

FAT binary version under development.

It can be played against on freechess.org when the application is on-line.  You will require XBoard as an interface.  You can also select one of the other interfaces that are available.

On Solaris, HP-UX

Binary version is available.

On Windows 3.11

Native version under development.
Make sure you have Win 32 installed.

On Windows CE, Pocket PC, Windows Mobile

Native version under development.

It can be played against on freechess.org when the application is on-line.  You will require Winboard as an interface.  You can also select one of the other interfaces that are available.

On Palm

No plans for development available.

It can be played against on freechess.org when the application is on-line.  You will require Winboard as an interface.  You can also select one of the other interfaces that are available.

License terms

This program is available under a hybrid license.  Full license conditions are available in a separate file.  They can be summarized as follows:
Please refer and agree to the complete license conditions.  They describe the terms used above in full detail.

Commands

The application supports all standard Xboard commands.  Please refer to the xboard engine interface description for more details.  The most useful commands can be found when giving the help command.
The application does bear the version 2 interface and will give some hints on the supported commands using the feature command.

protover <n>

Next to version 2, other versions are supported.  Please try the values 4, 6 and 7 and type the help command to see what commands can be issued.

help

It will list all sensible commands that can be used in the version of the interface.  Only a few commands are depending on the version of the interface however.  Even if in a certain version of the interface a certain command is not listed through the help command, it does not mean that it cannot be used.

The exceptions of the commands that depend on the version of the interface are listed in the 'protover command' section.

createbook <inputfilename.pgn>

This command will create an opening book based on the pgn file supplied.  The pgn file needs to be conform to some pgn standards:
Only the first 10 moves will be read from the opening book.  All other moves will be skipped.  The book generation process is a slow process.  Please reserve sufficient time to create your books.

again

Evaluate the previous position again and see if the same result is obtained.  Most useful is issuing this command when there are multiple moves that can be selected because they are all considered equal.   Possibly another move will be selected.
Another use is when analysing the game, to make sure that a search is performed with different parameters that can be set before issuing this command.
It is an equivalent for: 'undo' and 'go'.

eval

Show the static position evaluation of the current position.

game

Show the game history on the command line.

alg

Switch to another algorithm.  Currently not supported.

bk

Show all book moves.

sd <n>

Switch to fixed depth search.  Currently does adapt each move the depth to be searched based on the time left and the number of moves played.  This is because time controls are not built in.

epd

Parse an epd file. Please refer to the section on epd files for more information.

Terminology

Term
Description
PGN
Portable game notation
FEN

EPD

ELO
Rating
SAN

GNU

SIGTERM

SIGINT

CR LF
Carriage return and linefeed character.  Represented as hexadecimal characters 0x13 0x10.
ICS
Internet Chess Server
FICS
Free Internet Chess Server

Formats used in the application.

FEN strings.

Please refer to the FEN manual.  ... more ...

EPD strings.

Please refer to the EPD manual.  ... more ...

PGN file.

Please refer to the createbook command for the PGN format of the file needed for creating the opening book.
All played games will also be stored in a PGN file.  The format of this file conforms to the same rules as the above.

Opening book.

The opening book is an ASCII file with following data: The program will also create a cache version of the opening book.  This version will be used if available instead of the ASCII book for speed reasons.

An opening book can be downloaded here.

Things to be implemented

This list is what we call, a TODO list.  This list is to be completed will all comments in the source code.

Generic improvements:

Windows improvements:

Linux improvements:

Position evaluation improvements:

Speed-ups:

Known bugs:

Other information

From the MacChess site:

Belofte is a self-written chess program available on Mac OS X and on Linux i386. It works with XBoard or from the command line.

It also plays on freechess.org under the same name. You can meet it there during weekdays in between 20.00 CET and 06.00 CET.

The main concept behind 'Belofte' is not to be yet another chess program but to change some fundamentals in chess programs. Most chess programs work by selecting the best move according to evaluation and search.  'Belofte' is different in that. It will select amongst one of the good moves according to a certain desire.  It changes fundamentally from the traditional minimax algorithms; it does not retain the best move in a certain position, but a series of plausible moves in a position.

For that, it will analyse the games of the opponent to see what moves he/she will play and uses these moves in its analysis.

I do not throw away all chess development concepts:

What is implemented is:
    •     Alpha-beta
    •     Quiescence
    •     Opening books

What will be implemented in the future is:
    •     Iterative deepening
    •     Transposition tables
    •     Endgame tablebases
    •     en-passant moves
    •     analysis mode

Finger it at freechess.org:

Finger of Belofte(C):

          rating    RD win loss draw total best
 Blitz       742  50.9  11   70    0    81  827 (30-Nov-2004)
 Lightning  1164 305.0   0    2    0     2


 Total time online: 14 hrs, 11 mins
 % of life online: 13.0 (since Sun Nov 28, 01:43 CET 2004)

 Timeseal : Off

 1: I am a computer, running on a Dual G4 1.25 Ghz
 2: I am not strong though, rated around 700 elo but improving
 3: You can find more on www.macchess.eu
 4: I do not have opening books, no endgame knowledge, no nothing....
 5: I play regular chess. Other variants will be added later.
 6: I will not play against abusers.... and only rated games. For now.

About EPD files

EPD files can best be compared to computer readable files of chess problems as printed in the press.

EPD files contain a number of test positions and their expected results. The result for each test position is listed next to the problem.

The format of the file is very well defined. Not all options might be implemented. The format of the file is as such that if a certain option is not implemented, the option will be ignorable. It depends on the implementation whether this unsupported option will be ignored.

A missing option might render an EPD test file worthless for the given implementation.

Using EPD files

From within the command line option, enter epd followed with the fully qualified filename including extension.

e.g. epd testset1.epd

The current folder will be used if no path information is presented. The path information should be compatible with the platform the program is run on.

The program will output for each test in the EPD file whether a result has been found or not. The normal log-levels of the program will be used during the parsing of the file.

At the end of the test, the total number of correct results and the total number of tests will be printed.

Supported options

Belofte supports comments started with the hash '#' and semi-column ';' character.

The op-codes 'id', 'bm' and 'am' are being supported. All other opcodes are being ignored.

EPD files and test results

Given the result is stored with the test, EPD files are not suited for human tests. They are very suited to computerised tests, given the program does not cheat by reading the result.

Given most programs implement epd when they want to integrate an automated test suite, we can assume programs do not cheat but use the EPD test suite to measure itself against predefined tests.

EPD result interpretation

Belofte will parse the EPD file given with the current level setting.

Given belofte does not support level or time indicators in EPD files, not all EPD files are usable for belofte.

Belofte will output the number of solutions found and the total number of test positions scanned. Most test-sets are based around a certain level and a score of a certain % can be translated into a certain elo level.

Beware of Elo levels

There are as many elo levels as peer groups. Elo levels can be compared to IQ. They give a relative indication how persons compare to each other but they cannot be used to compare a person of group A to a person of group B. FIDE elo at the 1900 range is comparable to USCF in the 2000 range, and FIDE 2500 is comparable to USCF 2650.

The score obtained for a program should more or less be the average of all different tests, but is no absolute indication.

For each test set, the elo level for a 50% and 100% score is given, together with the standard deviation. When scoring less than 50%, the results should no longer be representative.

Alternative chesspiece identifier letters


Language     Piece letters (pawn knight bishop rook queen king)
----------   --------------------------------------------------
Czech        P J S V D K
Danish       B S L T D K
Dutch        O P L T D K
English      P N B R Q K
Estonian     P R O V L K
Finnish      P R L T D K
French       P C F T D R
German       B S L T D K
Hungarian    G H F B V K
Icelandic    P R B H D K
Italian      P C A T D R
Norwegian    B S L T D K
Polish       P S G W H K
Portuguese   P C B T D R
Romanian     P C N T D R
Spanish      P C A T D R
Swedish      B S L T D K