My Project
Functions
cassio.h File Reference

Go to the source code of this file.

Functions

void * engine_init (void)
 Create a new Othello engine. More...
 
void engine_free (void *)
 free resources allocated More...
 
double engine_midgame_search (void *, const char *, const double, const double, const int, const int)
 Midgame search. More...
 
int engine_endgame_search (void *, const char *, const int, const int, const int)
 Endgame search. More...
 
void engine_stop (void *)
 Stop searching. More...
 
void engine_print_results (void *, char *)
 
void engine_empty_hash (void *)
 Empty (ie completely clear) the engine hash table. More...
 
void engine_loop (void)
 Loop event. More...
 

Detailed Description

A simple protocol to communicate with Cassio.

Date
1998 - 2017
Author
Richard Delorme
Version
4.4

Function Documentation

◆ engine_empty_hash()

void engine_empty_hash ( void *  v)

Empty (ie completely clear) the engine hash table.

Parameters
vEngine.

◆ engine_endgame_search()

int engine_endgame_search ( void *  v,
const char *  position,
const int  alpha,
const int  beta,
const int  precision 
)

Endgame search.

Practically, Edax does the same things than in midgame search, with depth set as the number of empty squares. In case (beta - alpha) < 1, Edax will reajust beta so that beta = alpha + 1.

Parameters
vEngine.
positionString description of the position.
alphaAlpha bound.
betaBeta bound.
precisionProbcut percentage.

◆ engine_free()

void engine_free ( void *  v)

free resources allocated

Parameters
vEngine.

◆ engine_init()

void * engine_init ( void  )

Create a new Othello engine.

Allocate engine resources & launch user-input event thread.

Returns
A pointer to a newly allocated engine structure.

◆ engine_loop()

void engine_loop ( void  )

Loop event.

◆ engine_midgame_search()

double engine_midgame_search ( void *  v,
const char *  position,
const double  alpha,
const double  beta,
const int  depth,
const int  precision 
)

Midgame search.

Edax evaluation resolution is only one disc, so the doubleing point accuracy is not actually used here. In case (beta - alpha) < 1, Edax will reajust beta so that beta = alpha + 1. For some depths, extension-pv heuristics will return endgame score.

Parameters
vEngine.
positionString description of the position.
alphaAlpha bound.
betaBeta bound.
depthSearch depth.
precisionProbcut percentage.

◆ engine_print_results()

void engine_print_results ( void *  ,
char *   
)

◆ engine_stop()

void engine_stop ( void *  v)

Stop searching.

Parameters
vSearch.