libkombilo
0.8
|
#include <algos.h>
Public Member Functions | |
Algo_movelist (int bsize, SnapshotVector DATA) | |
void | initialize_process () |
Called by GameList::start_processing. | |
void | newgame_process (int game_id) |
Called when a new game is about to be GameList::process'ed. | |
void | AB_process (int x, int y) |
Called during processing, for each AB SGF tag. | |
void | AW_process (int x, int y) |
Called during processing, for each AW SGF tag. | |
void | AE_process (int x, int y, char removed) |
Called during processing, for each AE SGF tag. | |
void | endOfNode_process () |
Called during processing, after fully processing a node (which might contain several AB , AW tags) | |
void | move_process (Move m) |
Called during processing, for each move (B , W tags) | |
void | pass_process () |
Called during processing, for each pass. | |
void | branchpoint_process () |
Called during processing, for each node where a variation starts. | |
void | endOfVariation_process () |
Called during processing, when reaching the end of variation ("jump back to most recent branchpoint") | |
void | endgame_process (bool commit=true) |
Called during processing, when the end of the game is reached. | |
void | finalize_process () |
Called by GameList::finalize_processing. | |
int | search (PatternList &patternList, GameList &gl, SearchOptions &options) |
pattern search | |
SnapshotVector | get_data () |
Extract the relevant data from file at Kombilo startup. | |
Public Member Functions inherited from Algorithm | |
Algorithm (int bsize) | |
Data Fields | |
std::vector< char > | movelist |
char * | fpC |
std::map< int, char * > | data1 |
std::map< int, char * > | data2 |
std::map< int, int > | data1l |
Data Fields inherited from Algorithm | |
int | gid |
store the game id during processing | |
int | boardsize |
board size | |
This algorithm takes a candidate for a hit (as provided by AlgoFinalpos or AlgoHash), i.e. a position on the board where a certain pattern could possibly match, and then plays through the game in order to decide whether this is really a hit. Of course, in practice, we take a list of all candidates for a given game, so that we have to play through the game only once. Furthermore, instead of using the SGF file, we use a "move list" where all the moves and captures are stored - by avoiding to compute whether any stones are captured with some move (and which ones) we save a lot of time. This move list is generated during processing when the database is built.