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:
- If you are a student, a private person or a non profit
organisation,
this software and its source code is free.
- If you live are an US citizen or organisation, you have to agree
on license terms
first. After you agree, this software is free.
- If you are a commercial organisation, or are using this software
in a commercial way, you have to pay a license.
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:
- The notation needs to be very strict. Only correct
abbreviated SAN notation is supported. This is the SAN export
notation. There must not be any from field character added when
this is not required. Please refer to the SAN manual for more
information on this notation.
- The game tag needs to have a header tag with the result filled
in. If the result is not filled in, the game is skipped and the
next game is read.
- The game must not have annotations.
- The space in between the move number and the move itself is
optional. (In order to allow the GNUchess book 1.00 to be read.)
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:
- Each position starts with a FEN string excluding the last ply
indicators.
- On each next line, the SAN move is listed, together with its
statistics. All data is separated by a space. The
statistics are in following order:
- The number of times this move is played, the number of times
white won,
the number of times black won, the number of times a draw was
concluded, the number of total moves after this move in the games
analysed.
- When there are no more opening moves available, there is a blank
line.
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:
- The move generation process could scan for duplicate positions,
now
this is done in the reading of the opening book. As this leads to
very
large files, this change is welcome.
- Keep the score of the pieces dynamically while applying
moves. Do not evaluate positions when the piece evaluation shows
a very large difference to the score of the current position.
(Meaningless unless the complete score is close to a alpha or beta
cut-value.)
- Test with other ICS servers.
- Validate the commands given based on their parameters. If a
certain command requires a numeric parameter, check that this parameter
is present before executing the command.
- Create makefile, autoconf, ... for compilation.
- Include list of games Belofte played for information.
- Reuse instance.
- San moveentry.
- Other chess variants. Chess 960, ...
- Lightning/blitz and standard play.
Windows improvements:
- The source does not cater for the aberrant CR LF
termination. Probably some errors could arise.
- Recompilation with Visual C++ will probably break.
Linux improvements:
- Cross compilation with fat binaries for PPC / x86 has not been
tested.
Position evaluation improvements:
- The piece evaluation should be somewhat relative to the total
weight of pieces on the board.
- See if a bishop can be placed on a diagonal with a king, queen or
rook.
- See if a rook can be placed on a line or row with a queen.
- See if a rook can be placed on a row of the king. (line is
already implemented)
- Corrections in the static attack calculation.
- 2 pawns on line 3 with distance 4 bonus.
Speed-ups:
- Move generation is a bit sluggish. For king and knight,
precalculated positions can be used.
- Implementation of transposition tables. Most probably by
using Zobrist keys.
Known bugs:
- Sometimes, an illegal move is detected. Especially castling
is done sometimes illegally.
- Threefold position repetition is not recognised.
- After some hours of playing, a sudden termination can occur
during auto saving of games to the pgn file.
- When running in background, in another account, the application
may hook up the X11 environment when the processor is used heavily.
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