Updating to version 1.3, release made by Mike Vanier (mvanier@bbb.caltech.edu).
[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 1, or (at your option) any
20  * 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, write to the Free
29  * Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
30  * ----------------------------------------------------------------------
31  *
32  */
33
34
35 /*
36  * This file is for options that control the behavior of GNU shogi,
37  * and also for debugging #defines.  They were previously placed on the
38  * command line as -D<option> statements, but this cluttered things
39  * up so much that I changed it.  For the evaluator options, I recommend
40  * you don't change anything unless you *really* know what you're doing.
41  * These options come in pairs of:
42  *
43  * #define <option>
44  * #undef <option>
45  *
46  * For each pair, simply comment out the one you don't want.
47  *
48  */
49
50
51 #ifndef _OPTS_H_
52 #define _OPTS_H_
53
54 /*
55  * ======================================================================
56  *
57  * 1) Evaluator options.
58  *
59  * ======================================================================
60  */
61
62 /*
63  * QUIETBACKGROUND:
64  * Don't print post information in background (easy mode OFF)
65  */
66
67 #define QUIETBACKGROUND
68 /* #undef  QUIETBACKGROUND */
69
70
71 /*
72  * NODYNALPHA:
73  * Don't dynamically adjust alpha.
74  */
75
76 /* #define NODYNALPHA */
77 #undef  NODYNALPHA
78
79
80 /*
81  * HISTORY:
82  * Use history killer heuristic.
83  */
84
85 #define HISTORY
86 /* #undef  HISTORY */
87
88
89 /*
90  * CACHE:
91  * Cache static evaluations.
92  */
93
94 #define CACHE
95 /* #undef  CACHE */
96
97
98 /*
99  * QUIETBOOKGEN:
100  * Don't print errors while loading a book or generating a binbook.
101  */
102
103 /* #define QUIETBOOKGEN */
104 #undef  QUIETBOOKGEN
105
106
107 /*
108  * SEMIQUIETBOOKGEN:
109  * Print less verbose errors while reading book or generating binbook.
110  */
111
112 /* #define SEMIQUIETBOOKGEN */
113 #undef  SEMIQUIETBOOKGEN
114
115
116 /*
117  * NULLMOVE:
118  * Include null move heuristic.
119  */
120
121 #define NULLMOVE
122 /* #undef  NULLMOVE */
123
124
125 /*
126  * Options for genmove.c in order to support move ordering at a
127  * cost in speed.
128  */
129
130 /*
131  * TESUJIBONUS:
132  * Add bonus to a move that seems to be a tesuji.
133  */
134
135 #define TESUJIBONUS
136 /* #undef  TESUJIBONUS */
137
138
139 /*
140  * FIELDBONUS:
141  * Add bonus to regular moves.
142  */
143
144 #define FIELDBONUS
145 /* #undef  FIELDBONUS */
146
147
148 /*
149  * DROPBONUS:
150  * Add bonus to drops.
151  */
152
153 #define DROPBONUS
154 /* #undef  DROPBONUS */
155
156
157 /*
158  * CHECKBONUS:
159  * Add bonus to checks.
160  */
161
162 #define CHECKBONUS
163 /* #undef  CHECKBONUS */
164
165
166 /*
167  * DEEPSEARCHCUT:
168  * Check for moves not to consider at deep plys.
169  */
170
171 #define DEEPSEARCHCUT
172 /* #undef  DEEPSEARCHCUT */
173
174
175
176 /*
177  * ======================================================================
178  *
179  * 2) Debug options.  We don't put a #define/#undef pair here, since
180  *    usually only one or a few of these will be defined.
181  *
182  * ======================================================================
183  */
184
185
186 /* FIXME: write comments for these: */
187 #undef HASHKEYTEST
188 #undef HASHTEST
189 #undef CACHETEST
190
191 /* This is used in rawdsp.c and cursesdsp.c: */
192 #define VERYBUGGY
193
194 /* This affects the history table.  See gnushogi.h. */
195 #define EXACTHISTORY
196
197
198 /*
199  * ======================================================================
200  *
201  * 3) Other options.
202  *
203  * ======================================================================
204  */
205
206 /*
207  * Define this if you want to automatically have the game saved on exit.
208  * This tends to litter whatever directory you're in with game files you
209  * may not want, so it's off by default.
210  */
211
212 #undef LIST_ON_EXIT
213
214 #endif /* _OPTS_H_ */