EditBoard: fix error handling in piece setting.
[gnushogi.git] / gnushogi / opts.h
1 /*
2  * FILE: opts.h
3  *
4  *     #defines to set various options.
5  *
6  * ----------------------------------------------------------------------
7  * Copyright (c) 1993, 1994, 1995 Matthias Mutz
8  * Copyright (c) 1999 Michael Vanier and the Free Software Foundation
9  * Copyright (c) 2008, 2013, 2014 Yann Dirson and the Free Software Foundation
10  *
11  * GNU SHOGI is based on GNU CHESS
12  *
13  * Copyright (c) 1988, 1989, 1990 John Stanback
14  * Copyright (c) 1992 Free Software Foundation
15  *
16  * This file is part of GNU SHOGI.
17  *
18  * GNU Shogi is free software; you can redistribute it and/or modify it
19  * under the terms of the GNU General Public License as published by the
20  * Free Software Foundation; either version 3 of the License,
21  * or (at your option) any later version.
22  *
23  * GNU Shogi is distributed in the hope that it will be useful, but WITHOUT
24  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
25  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
26  * for more details.
27  *
28  * You should have received a copy of the GNU General Public License along
29  * with GNU Shogi; see the file COPYING. If not, see
30  * <http://www.gnu.org/licenses/>.
31  * ----------------------------------------------------------------------
32  *
33  */
34
35
36 /*
37  * This file is for options that control the behavior of GNU shogi,
38  * probably only be of interest to people who are hacking the source codes.
39  * They were previously placed on the
40  * command line as -D<option> statements, but this cluttered things
41  * up so much that I changed it.  For the evaluator options, I recommend
42  * you don't change anything unless you *really* know what you're doing.
43  * These options come in pairs of:
44  *
45  * #define <option>
46  * #undef <option>
47  *
48  * For each pair, simply comment out the one you don't want.
49  *
50  */
51
52
53 #ifndef _OPTS_H_
54 #define _OPTS_H_
55
56 /*
57  * ======================================================================
58  *
59  * 1) Evaluator options.
60  *
61  * ======================================================================
62  */
63
64 /*
65  * QUIETBACKGROUND:
66  * Don't print post information in background (easy mode OFF)
67  */
68
69 #define QUIETBACKGROUND
70 /* #undef  QUIETBACKGROUND */
71
72
73 /*
74  * NODYNALPHA:
75  * Don't dynamically adjust alpha.
76  */
77
78 /* #define NODYNALPHA */
79 #undef  NODYNALPHA
80
81
82 /*
83  * HISTORY:
84  * Use history killer heuristic.
85  */
86
87 #define HISTORY
88 /* #undef  HISTORY */
89
90
91 /*
92  * CACHE:
93  * Cache static evaluations.
94  */
95
96 #define CACHE
97 /* #undef  CACHE */
98
99
100 /*
101  * QUIETBOOKGEN:
102  * Don't print errors while loading a book or generating a binbook.
103  */
104
105 /* #define QUIETBOOKGEN */
106 #undef  QUIETBOOKGEN
107
108
109 /*
110  * SEMIQUIETBOOKGEN:
111  * Print less verbose errors while reading book or generating binbook.
112  */
113
114 /* #define SEMIQUIETBOOKGEN */
115 #undef  SEMIQUIETBOOKGEN
116
117
118 /*
119  * NULLMOVE:
120  * Include null move heuristic.
121  */
122
123 #define NULLMOVE
124 /* #undef  NULLMOVE */
125
126
127 /*
128  * Options for genmove.c in order to support move ordering at a
129  * cost in speed.
130  */
131
132 /*
133  * TESUJIBONUS:
134  * Add bonus to a move that seems to be a tesuji.
135  */
136
137 #define TESUJIBONUS
138 /* #undef  TESUJIBONUS */
139
140
141 /*
142  * FIELDBONUS:
143  * Add bonus to regular moves.
144  */
145
146 #define FIELDBONUS
147 /* #undef  FIELDBONUS */
148
149
150 /*
151  * DROPBONUS:
152  * Add bonus to drops.
153  */
154
155 #define DROPBONUS
156 /* #undef  DROPBONUS */
157
158
159 /*
160  * CHECKBONUS:
161  * Add bonus to checks.
162  */
163
164 #define CHECKBONUS
165 /* #undef  CHECKBONUS */
166
167
168 /*
169  * DEEPSEARCHCUT:
170  * Check for moves not to consider at deep plys.
171  */
172
173 #define DEEPSEARCHCUT
174 /* #undef  DEEPSEARCHCUT */
175
176
177
178 /*
179  * ======================================================================
180  *
181  * 2) Debug options.  We don't put a #define/#undef pair here, since
182  *    usually only one or a few of these will be defined.
183  *
184  * ======================================================================
185  */
186
187
188 /* FIXME: write comments for these: */
189 #undef HASHKEYTEST
190 #undef HASHTEST
191 #undef CACHETEST
192
193 /* This is used in rawdsp.c and cursesdsp.c: */
194 #define VERYBUGGY
195
196 /* This affects the history table.  See gnushogi.h. */
197 #define EXACTHISTORY
198
199
200 /*
201  * ======================================================================
202  *
203  * 3) Other options.
204  *
205  * ======================================================================
206  */
207
208 /*
209  * Define this if you want to automatically have the game saved on exit.
210  * This tends to litter whatever directory you're in with game files you
211  * may not want, so it's off by default.
212  */
213
214 #undef LIST_ON_EXIT
215
216 #endif /* _OPTS_H_ */