92 fprintf(stderr,
"\nCommon options:\n");
93 fprintf(stderr,
" -?|help show this message.\n");
94 fprintf(stderr,
" -o|option-file read options from this file.\n");
95 fprintf(stderr,
" -v|version display the version number.\n");
96 fprintf(stderr,
" -name <string> set Edax name to <string>.\n");
97 fprintf(stderr,
" -verbose <n> verbosity level.\n");
98 fprintf(stderr,
" -q silent mode (eq. -verbose 0).\n");
99 fprintf(stderr,
" -vv very verbose mode (eq. -verbose 2).\n");
100 fprintf(stderr,
" -noise <n> noise level (print search output from ply <n>).\n");
101 fprintf(stderr,
" -width <n> line width.\n");
102 fprintf(stderr,
" -h|hash-table-size <nbits> hash table size.\n");
103 fprintf(stderr,
" -n|n-tasks <n> search in parallel using n tasks.\n");
104 fprintf(stderr,
" -cpu search using 1 cpu/thread.\n");
106 fprintf(stderr,
"\nCassio protocol options:\n");
107 fprintf(stderr,
" -debug-cassio print extra-information in cassio.\n");
108 fprintf(stderr,
" -follow-cassio follow more closely cassio requests.\n");
109 fprintf(stderr,
"\nOptions unavailable to Cassio protocol\n:");
111 fprintf(stderr,
" -l|level <n> search using limited depth.\n");
112 fprintf(stderr,
" -t|game-time <n> search using limited time per game.\n");
113 fprintf(stderr,
" -move-time <n> search using limited time per move.\n");
114 fprintf(stderr,
" -ponder <on/off> search during opponent time.\n");
115 fprintf(stderr,
" -eval-file read eval weight from this file.\n");
116 fprintf(stderr,
" -book-file load opening book from this file.\n");
117 fprintf(stderr,
" -book-usage <on/off> play from the opening book.\n");
118 fprintf(stderr,
" -book-randomness <n> play various but worse moves from the opening book.\n");
119 fprintf(stderr,
" -auto-start <on/off> automatically restart a new game.\n");
120 fprintf(stderr,
" -auto-swap <on/off> automatically Edax's color between games\n");
121 fprintf(stderr,
" -auto-store <on/off> automatically save played games\n");
122 fprintf(stderr,
" -game-file <file> file to store all played game/s.\n");
123 fprintf(stderr,
" -search-log-file <file> file to store search detailed output/s.\n");
124 fprintf(stderr,
" -ui-log-file <file> file to store input/output to the (U)ser (I)nterface.\n");
140 if (option == NULL)
return read;
141 while (*option ==
'-') ++option;
142 if (*option ==
'\0' || *option ==
'%' || *option ==
'#')
return read;
147 else if (strcmp(option,
"info") == 0)
options.
info =
true;
150 else if (strcmp(option,
"?") == 0 || strcmp(option,
"help") == 0)
usage();
154 if (value == NULL || *value ==
'\0')
return read;
162 else if (strcmp(option,
"l") == 0 || strcmp(option,
"level") == 0) {
165 }
else if (strcmp(option,
"d") == 0 || strcmp(option,
"depth") == 0) {
168 }
else if (strcmp(option,
"selectivity") == 0) {
171 }
else if (strcmp(option,
"t") == 0 || strcmp(option,
"game-time") == 0) {
174 }
else if (strcmp(option,
"move-time") == 0) {
181 else if (strcmp(option,
"o") == 0 || strcmp(option,
"option-file") == 0)
options_parse(value);
228 info(
"<set option %s %s>\n", option, value);
249static const char*
option_parse(
const char *line,
char *option,
char *value,
int size)
252 if (strcmp(option,
"set") == 0) line =
parse_word(line, option, size);
254 if (strcmp(value,
"=") == 0) line =
parse_word(line, value, size);
268 char *line, *option, *value;
269 FILE *f = fopen(file,
"r");
274 int n = strlen(line);
275 option = (
char*) malloc(n + 1);
276 value = (
char*) malloc(n + 1);
278 free(line); free(option); free(value);
293 if (
sizeof (
void*) == 4) {
332 const char *(play_type[3]) = {
"fixed depth",
"fixed time per game",
"fixed time per move"};
333 const char *(boolean_string[2]) = {
"false",
"true"};
334 const char *(mode[4]) = {
"human/edax",
"edax/human",
"edax/edax",
"human/human"};
336 fprintf(f,
"search display options\n");
338 fprintf(f,
"\tminimal depth (noise): %d\n",
options.
noise);
340 fprintf(f,
"\tuser input echo: %s\n", boolean_string[
options.
echo]);
341 fprintf(f,
"\t<detailed info>: %s\n\n", boolean_string[
options.
info]);
342 fprintf(f,
"Cassio options\n");
343 fprintf(f,
"\tdisplay debug info in Cassio's 'fenetre de rapport': %s\n", boolean_string[
options.
debug_cassio]);
346 fprintf(f,
"\tsearch options\n");
349 fprintf(f,
"\ttask number for parallel search: %d\n",
options.
n_task);
357 fprintf(f,
"\tsearch nps %.0f N/s\n",
options.
nps);
360 fprintf(f,
"\tsearch all best moves: %s\n", boolean_string[
options.
all_best]);
366 fprintf(f,
"ggs options\n");
373 fprintf(f,
"PV options\n");
380 fprintf(f,
"log files\n");
387 fprintf(f,
"Game play\n");
389 fprintf(f,
"\tstart a new game after a game is over: %s\n", boolean_string[
options.
auto_start]);
390 fprintf(f,
"\tstore each played game in the opening book: %s\n", boolean_string[
options.
auto_start]);
391 fprintf(f,
"\tchange computer's side after each game: %s\n", boolean_string[
options.
auto_start]);
392 fprintf(f,
"\tquit when game is over: %s\n", boolean_string[
options.
auto_start]);
393 fprintf(f,
"\trepeat %d games (before exiting)\n\n\n",
options.
repeat);
#define SCORE_MAX
Definition const.h:58
#define TIME_MAX
Definition const.h:61
#define MAX_THREADS
Definition const.h:15
#define EDAX_NAME
Definition const.h:89
@ CUT_NODE
Definition const.h:82
@ PV_NODE
Definition const.h:81
@ ALL_NODE
Definition const.h:83
#define SCORE_MIN
Definition const.h:55
void usage(void)
Programme usage.
Definition main.c:51
void options_usage(void)
Print options usage.
Definition options.c:90
static const char * option_parse(const char *line, char *option, char *value, int size)
parse an option from a string
Definition options.c:249
void options_free(void)
free allocated resources.
Definition options.c:399
Options options
Definition options.c:22
int options_read(const char *option, const char *value)
Read an option.
Definition options.c:136
void options_dump(FILE *f)
Print all global options.
Definition options.c:330
void options_parse(const char *file)
parse options from a file
Definition options.c:266
void options_bound(void)
Keep options between realistic values.
Definition options.c:288
@ EDAX_TIME_PER_GAME
Definition options.h:19
@ EDAX_FIXED_LEVEL
Definition options.h:18
@ EDAX_TIME_PER_MOVE
Definition options.h:20
PlayType play_type
Definition options.h:42
bool book_allowed
Definition options.h:60
bool can_ponder
Definition options.h:43
bool all_best
Definition options.h:55
bool cpu_affinity
Definition options.h:30
double speed
Definition options.h:49
int n_task
Definition options.h:29
char * ggs_host
Definition options.h:63
int level
Definition options.h:40
char * eval_file
Definition options.h:57
char * ui_log_file
Definition options.h:78
bool pv_guess
Definition options.h:73
char * ggs_password
Definition options.h:65
int depth
Definition options.h:44
bool echo
Definition options.h:35
bool pv_check
Definition options.h:72
bool auto_start
Definition options.h:83
int repeat
Definition options.h:87
int width
Definition options.h:34
int book_randomness
Definition options.h:61
int inc_sort_depth[3]
Definition options.h:27
int alpha
Definition options.h:52
char * search_log_file
Definition options.h:77
int noise
Definition options.h:33
bool pv_debug
Definition options.h:71
char * game_file
Definition options.h:75
char * ggs_login
Definition options.h:64
bool auto_quit
Definition options.h:86
bool transgress_cassio
Definition options.h:38
int mode
Definition options.h:47
double probcut_d
Definition options.h:69
bool ggs_open
Definition options.h:67
char * ggs_log_file
Definition options.h:79
long long time
Definition options.h:41
double nps
Definition options.h:50
bool auto_swap
Definition options.h:85
char * ggs_port
Definition options.h:66
bool info
Definition options.h:36
char * book_file
Definition options.h:59
int beta
Definition options.h:53
int hash_table_size
Definition options.h:25
char * name
Definition options.h:81
bool debug_cassio
Definition options.h:37
int selectivity
Definition options.h:45
bool auto_store
Definition options.h:84
int verbosity
Definition options.h:32
void time_print(long long t, bool justified, FILE *f)
Print time as "D:HH:MM:SS.CC".
Definition util.c:131
char * string_duplicate(const char *s)
Duplicate a string.
Definition util.c:299
char * parse_int(const char *string, int *result)
Parse an integer.
Definition util.c:761
char * parse_real(const char *string, double *result)
Parse a real number (as a double floating point).
Definition util.c:796
char * string_read_line(FILE *f)
Read a line.
Definition util.c:265
int string_to_int(const char *s, const int default_value)
Convert a string into an integer.
Definition util.c:457
int get_cpu_number(void)
Get the number of cpus or cores on the machine.
Definition util.c:987
double string_to_real(const char *s, const double default_value)
Convert a string into a real number.
Definition util.c:488
char * parse_word(const char *string, char *word, unsigned int n)
Parse a word.
Definition util.c:562
long long string_to_time(const char *string)
Read time as "D:HH:MM:SS.C".
Definition util.c:320
char * parse_boolean(const char *string, bool *result)
Parse a boolean.
Definition util.c:741
Miscellaneous utilities header.
#define MIN(a, b)
Definition util.h:101
#define info(...)
Display a message.
Definition util.h:382
#define BOUND(var, min, max, name)
Definition util.h:104