Source code ProDeo EOC database

The ProDeo (Rebel) EOC database as open source. 5 minutes away easily building the biggest chess tree in the word and use it to improve your chess engine.

Download Source Code version 1.02 and read the documentation in the EOC.C file, basically the below.

EOC module for Chess Programs
written by Ed Schröder
Version 1.02

This information provides the way how to include the ProDeo EOC system into your chess engine.

  • Include "eoc.c" into your project and compile.

  • EXAMPLE.EOC - Example demonstration EOC database. An EOC database is the statistic representation of a game collection (PGN or DAT), see here. EOC databases can be easily made with ProDeo Tools. Get Prodeo Tools here.

  • Initialization - Call the routine "initialize_eoc()" once.

  • Operation - Create an EPD string from the position you want to find and strcpy it into the string "EPD", then call the routine "search_position_in_eoc" to search the EOC database.
    When the position is found "eoc_amount" contains the number of games the position occurs and "eoc_percentage" contains the percentage of the position has scored. When the position is not found both variables contain -1.

  • Possibilities - Both variables provide enough information to allow you to add the following features to your chess engine or even your chess interface:
    • Use an EOC database as an opening book;
    • Use an EOC database to guide the search;
    • Use it as a (book/position) learning system;
    • Use it for display purposes in your GUI.
  • As openingbook - The basic idea: if a position occurs 20 times in the EOC database with a score of 60% it's safe to enter this position.
    Procedure: for every legal move call "search_position_in_eoc" and via "eoc_amount" and "eoc_percentage" decide if the move is a candidate book move. See also the demonstration code in the "main" section.

  • As guide - As an alternative you can use the EOC information as a tool to guide the search. Based on "eoc_amount" and "eoc_percentage" create a bonus/penalty score for each found EOC move and update the corresponding root move with that score.
    It's fully explained here, see section: alternative goals of EOC).

  • As learner - Just create an EOC database from the games your program has played with ProDeo Tools. Via "eoc_amount" and "eoc_percentage" decide which opening to avoid or to stimulate. When your engine has entered a position with a bad percentage consider to switch to a somewhat different playing style to avoid your engine to lose again.

  • Display info - Add a nice statitic to your chess interface, see example picture of an EOC database running under ChessPartner here.
    When a position is found 4 more other variables are filled:
    • eoc_won : games won
    • eoc_lost : games lost
    • eoc_draw : games ended in a draw
    • eoc_total: total positions of the loaded EOC database.
    • See the demonstration code in the "main" section.
  • EPD creation - To create an EPD string from the current board position check chapter 16 from the PGN standard. Castling status and en-passant information are not needed to include in the EPD string, the module only needs the current position and the colour to move.

  • Remark - Realize that white moves usually score 5-7% better than black moves during the first moves. This is represented in the variables: "eoc_perc_white" and "eoc_perc_black" and pre-filled with 55% and 45% respectively as a base for calculation. See also the demonstration code in the "main" section.

EOC databases

  • Bigger EOC database of 3.5 million positions. Download size approximately 31Mb.

  • Computer EOC database made of 150,000 quality computer vs computer games between the top-30 engines of the world ran at a minimum time control of 30 seconds per move. Total positions 6.2 million. Excellent to use as an secondary opening book as there are hardly any blunders! Download size approximately 41Mb.

Pro Deo Tools

  • With ProDeo Tools you can easily create quality EOC databases from a PGN or REBEL database.

  • Download Million Base, one million quality chess games in PGN format and make an EOC database from it yourself within just 20 minutes. Output: An EOC database containing 36 million positions!

Copyright ©

  • The EOC source code and its components although distributed as freeware in no way may become subject to any form of commerce. Permission must be asked first.

  • The EOC source code and its components come as is and can only be used as such. It's forbidden to change, add, delete any of its components and only can be distributed in original form.
Copyright © 1984-2007 Ed Schröder Mail Me