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