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 on 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.

Using Belofte

On Mac OS X (before Tiger)

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 (Tiger)

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)

This software has not been ported nor 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 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 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.

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.internetcontact.be/~macchess
 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.

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