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