Author: Dann Corbit
Date: 11:34:56 07/15/99
Current C.A.P. members will have precedence.
Here is the current API:
/*
** Structure to be used by all languages to interface the C++ EPD classes
*/
typedef struct {
short ce; /* hundredths of a pawn */
unsigned char acd; /* Depth in plies */
/* std::string seems more natural, but C language, etc. must interface...*/
char *pm; /* Predicted move (by computer) */
char *am; /* Avoid this move */
char *bm; /* Best move */
} epd_info;
#ifndef EPD_BINARY_LENGTH
#define EPD_BINARY_LENGTH 24
#endif
typedef char position[EPD_BINARY_LENGTH];
/* Load more position data from binary storage into memory, filtering for piece
count and distance to mate, if requested. */
void BinaryLoad(int, int);
/* Save the current memory database to permanent storage. */
void BinarySave(void);
/* Load more position data from ASCII storage (Ordinary EPD records) into
memory, filtering for piece count and distance to mate, if requested. */
int AsciiLoad(int, int);
/* Request EPD information for a given position (binary format request): */
int BinaryInquire(char (*)[24],int, epd_info ** );
/* Request EPD information for a given position: */
int AsciiInquire(char ** , int, epd_info ** );
I plan to add BinaryInform() and AsciiInform() functions to post information
back to the database. You can merge as many binary and ASCII files into the
database as you like. Currently, it simply takes on new positions it has not
seen before, but the next iteration will update a position with better data once
it becomes available.
The data files are very large (pkziped binary file is 9 megs from 32, and the
unzipped ASCII file [if you wish to get it] is 110 megs). So if you only have a
slow phone link, I don't think you will want to try it.
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.