📄 search.h
字号:
// search.h
#ifndef SEARCH_H
#define SEARCH_H
// includes
#include <csetjmp>
#include "move_list.h"
#include "move.h"
// types
struct search_multipv_t
{
int mate;
int depth;
int max_depth;
int value;
double time;
sint64 node_nb;
char pv_string[512];
};
struct search_param_t
{
int move;
int best_move;
int threat_move;
bool reduced;
};
struct search_input_t
{
board_t board[1];
list_t list[1];
bool infinite;
bool depth_is_limited;
int depth_limit;
int multipv;
bool time_is_limited;
double time_limit_1;
double time_limit_2;
};
struct search_info_t
{
jmp_buf buf;
bool can_stop;
bool stop;
int check_nb;
int check_inc;
double last_time;
};
struct search_root_t
{
list_t list[1];
int depth;
int move;
int move_pos;
int move_nb;
int last_value;
bool bad_1;
bool bad_2;
bool change;
bool easy;
bool flag;
};
struct search_best_t
{
int move;
int value;
int flags;
int depth;
mv_t pv[256];
};
struct search_current_t
{
board_t board[1];
my_timer_t timer[1];
int max_depth;
int act_iteration;
int multipv;
sint64 node_nb;
double time;
double speed;
};
// variables
extern int number_threads;
extern search_input_t search_input[1];
extern search_info_t search_info[16][1];
extern search_best_t search_best[16][10];
extern search_root_t search_root[16][1];
extern search_current_t search_current[16][1];
// functions
extern bool depth_is_ok(int depth);
extern bool height_is_ok(int height);
extern void search_clear();
extern void search_init();
extern void search();
extern void search_smp(int thread_id);
extern void search_update_best(int thread_id);
extern void search_update_root(int thread_id);
extern void search_update_current(int thread_id);
extern void search_check(int thread_id);
#endif // !defined SEARCH_H
// end of search.h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -