diff options
Diffstat (limited to 'include/pv.h')
| -rw-r--r-- | include/pv.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/include/pv.h b/include/pv.h new file mode 100644 index 0000000..4be7b24 --- /dev/null +++ b/include/pv.h @@ -0,0 +1,47 @@ +/* + This file is part of ctak. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with ctak. If not, see <https://www.gnu.org/licenses/>. +*/ + +#ifndef PV_H +#define PV_H + +#ifdef RECORD_PV + +#include <stdint.h> + +#include <tak.h> + +#define PV_MAX_CELLS (6 * 6) + +typedef struct pv_leaf_s { + float head[3]; + uint8_t cells[PV_MAX_CELLS]; + uint8_t current_colour; + uint8_t terminal; + float terminal_value; +} pv_leaf_t; + +// Capture a horizon leaf (winner == 0xFF) or an exact terminal leaf +void pv_capture_leaf(pv_leaf_t *leaf, tak_state_p state, + enum WIN_TYPE winner); + +// Publish and retrieve the leaf selected by the full-depth root search +void pv_publish_leaf(const pv_leaf_t *leaf); +const pv_leaf_t *pv_get_leaf(void); + +#endif + +#endif |
