12003-07-04  Noah Roberts  <nroberts@reachone.com>
2
3	* src/Controller.cpp (run): don't move if the available move is null - continue
4	  thinking.
5
62003-06-06  Noah Roberts  <nroberts@reachone.com>
7
8	* src/Interface.h: removed implementation of constructor and added destructor
9	  declairation in CXBoardState.
10	* src/Interface.cpp: implemented constructor and destructor for CXBoardState.
11
12	* src/Interface.h (CXBoardState::printMove): changed "Move" to "move".
13	* src/Engine.cpp (think): send post output to stdout.
14	* src/Options.cpp (decipherCommandArgs): added -black to do same as -blue.
15	* src/Options.cpp (isOption): added 'black' to do same as 'blue'.
16
172003-05-26  Noah Roberts  <nroberts@reachone.com>
18
19	* Created new tsito2 development tree.
20
21	* src/common.h: added common definitions file.
22	* src/BitBoard.h: Began work on bitset<> board representation.
23
242003-05-03  Noah Roberts  <nroberts@reachone.com>
25
26	* src/Controller.cpp: added sleep to read loop for UNIX.
27
282003-04-29  Noah Roberts  <nroberts@reachone.com>
29
30	* src/Engine.cpp (think): fixed bug for when incremental search is
31	  turned off.
32
33	* src/Options.cpp (isOption): fixed encapsulation breakage for 'st'.
34	* src/Controller.cpp (optionChanged): listen for 'st', set and start
35	  timers.
36
37	* src/Options.cpp (isOption): removed listener for 'quiescence' - use
38	  set instead.
39
40	* doc/tsito.1: documented new commands and stuff.
41
422003-04-23  Noah Roberts  <nroberts@reachone.com>
43
44	//* src/Transposition (flush): set depth to 0 so that all old positions
45	    are
46	//  escensially deleted.
47	* src/Engine.cpp (tableSearch): only use result if previous search was
48	  > that our current depth, not >=.
49
50	* src/Options.cpp: added 'go' command.
51
52	* src/Command.cpp: added '?', 'undo', 'remove', and fixed bug for 1
53	  char commands.
54
55	* src/Controller.cpp: reversed order of test for chase/check.
56
572003-04-22  Noah Roberts  <nroberts@reachone.com>
58
59	* src/Interface.cpp (printMove): fixed move printing for user interface.
60
61	* src/Lawyer.h: added functions to look for special rules endgames.
62	* src/Lawyer.cpp (gameWonByChase): implemented perpetual chase endgame.
63	* src/Lawyer.cpp (gameWonByPCheck): implemented perpetual check endgame.
64	* src/Engine.cpp (search/quiescence): thinks about perpetual rules.
65
662003-04-16  Noah Roberts  <nroberts@reachone.com>
67
68	* src/Engine.h: added variables and methods to track search state.
69	* src/Engine.cpp (think): sets search state and stuff.
70	* src/Engine.cpp (getMove): sets search state to between.
71	* src/Engine.cpp (search): saves current best pv if aborting.
72
732003-04-12  Noah Roberts  <nroberts@reachone.com>
74
75	* tsito.pro: added tmake input file for Zaurus build
76	* makefile.arm: added Makefile for Zaurus build.
77	* makefile.arm: changed linker to g++
78	* makefile.arm: added -DBOOKDIR to CXXFLAGS.
79
80	* src/Engine.cpp: reimplemented quiescence. SLOW!
81
822003-04-10  Noah Roberts  <nroberts@reachone.com>
83
84	* src/Evaluate.cpp: removed unused code.
85
86	* src/everything: added commenting to code.
87
88	* src/Interface.cpp (readLine): rewrote to be safer.
89
90	* src/Move.h: removed SEE score.
91
922003-04-09  Noah Roberts  <nroberts@reachone.com>
93
94	* src/Evaluator.cpp (evaluatePosition): complete rewrite using piece
95          indexes instead of board array.
96
97	* src/Options.cpp: added lots of new options.
98	* src/Engine.cpp(optionChanged): started listening for search parameter
99	  options.
100	* src/Command.cpp(optionChanged): allow computerColor to be NOCOLOR for
101	  force mode.
102
103	* doc/tsito.1: first version of man document.
104
1052003-04-08  Noah Roberts  <nroberts@reachone.com>
106
107	* src/Engine.cpp: lots of stuff...need to be more diligent about
108	  changelog.
109
1102003-04-06  Noah Roberts  <nroberts@reachone.com>
111
112	* src/Board.h: Removed some inline functions and placed in Board.cpp.
113
114	* src/Board.h: added variables and methods to implement piece indexing.
115	* src/Board.cpp: implemented piece indexing.
116
1172003-04-05  Noah Roberts  <nroberts@reachone.com>
118
119	* src/Engine.cpp: Altered search implementation to share code between several
120	  algorithms.
121	* src/Engine.cpp: Implemented verified null move and hash table lookup.
122	* src/Engine.cpp: Implemented alpha-beta, negascout, and mtd(f).
123	* src/Engine.h: added variables to alter search algorithm and parameters.
124
125	* src/Engine.cpp (think): made output of thinking closer to xboard protocol.
126
1272003-03-29  Noah Roberts  <nroberts@reachone.com>
128
129	* Transposition.h: created interface for table.
130	* Transposition.cpp: implemented table.
131	* Board.h: fixed some bugs having to do with hash table and stopped hashing empty
132	  squares.
133	* Engine.cpp: started using table in search and access only in quiescence.  Also
134	  prints amount of subtrees cut off by table when it moves.
135
1362003-03-27  Noah Roberts  <nroberts@reachone.com>
137
138	* src/OpeningBook.h: use ios:in instead of ios::nocreate.
139
140	* src/Engine.h (search): added null move.
141
142	* src/Engine.h (search): redo ply with 'legalonly' flag if moving
143	  into check.
144	* src/Engine.h (search): listen to 'legalonly' flag again but don't
145	  pass it down the tree.
146
147	* src/Board.h (setPosition): fixed hash initialization at empty places.
148
1492003-03-26  Noah Roberts  <nroberts@reachone.com>
150
151	* src/OpeningBook.h: totally changed interface.
152	* src/OpeningBook.cpp: implemented an opening book class.
153	* src/Engine.h: added ascociation for opening book.
154	* src/Engine.cpp: instantiates opening book and uses it if position appears.
155	* configure.in: added define for DATADIR.
156	* Makefile.am: added book.dat to dist.
157
1582003-03-24  Noah Roberts  <nroberts@reachone.com>
159
160	* src/OpeningBook.h: began work on opening book classes.
161	* book.dat: preliminary opening book data file.
162
1632003-03-23  Noah Roberts  <nroberts@reachone.com>
164
165	* src/Evaluator.cpp (computeSee): basic SEE computation.
166	* src/Evaluator.cpp (pieceValueByLoc): positional matrix.
167	* src/Evaluator.cpp (evaluatePosition): evaluates by positional matrix instead of
168	  straight piece value.
169
170	* src/Engine.cpp (quiescence): implemented quiescence search.
171	* src/Engine.cpp (search): uses quiescence if turned on.
172	* src/Engine.cpp (::compareMoves): compare by SEE.
173	* src/Engine.cpp (filter): filters out non captures and captures with SEE <= 5.
174	* src/Engine.cpp (optionChanged): listen for "quiesc".
175	* src/Engine.cpp (const): quiescence turned off by default.
176	* src/Engine.cpp (const): set default depth back to 4.
177
178	* src/Engine.cpp (::compareMoves): stopped checking for repeats.
179
1802003-03-19  Noah Roberts  <nroberts@reachone.com>
181
182	* src/Command.cpp (parseCommand): implemented.
183	* src/Command.cpp (constructor): implemented.
184	* src/Command.cpp (isCommand): implemented.
185	* src/Command.cpp (vomit): implemented.
186	* src/Command.cpp (new): implemented.
187	* src/Command.cpp (setBoard): implemented.
188	* src/Controller.h (vars): added command association.
189	* src/Controller.cpp (run): use command.
190
191	* src/Engine.cpp (search): only add killers if not in check. (bugfix)
192
1932003-03-18  Noah Roberts  <nroberts@reachone.com>
194
195	* src/Options.cpp (decipherCommandArgs): added new -ts option to set table size.
196
197	* src/Board.h: Changed hashes to u_int64 (unsigned long long).
198
1992003-03-17  Noah Roberts  <nroberts@reachone.com>
200
201	* src/Command.h: created new interface file for command system.
202
203	* src/Board.h: Changed hashes to 64 bit unsigned doubles.
204
2052003-03-12  Noah Roberts  <nroberts@reachone.com>
206
207	* bug fixes.
208
2092003-03-11  Noah Roberts  <nroberts@reachone.com>
210
211	* src/Lawyer.h (underAttack): method to check if piece is being
212	  attacked.
213	* src/Lawyer.cpp (underAttack): implementation.
214
2152003-03-10  Noah Roberts  <nroberts@reachone.com>
216
217	* src/Evaluator.cpp (evaluateMobility): more evaluation.
218
2192003-03-09  Noah Roberts  <nroberts@reachone.com>
220
221	* src/Board.h (gameOver): added boolean gameover flag and methods.
222	* src/Controller.cpp (run): sets flag if computer side is in mate, doesn't move if flag is
223	  set.
224	* src/Controller.cpp (run): prints RESULT format command if game is over.
225
226	* src/Engine.h (search): added legalonly flag.
227	* src/Engine.cpp (search): searches only legal moves if flag is set.
228
229	* src/Evaluator.h (examineForDraw): check for material based draw condition.
230	* src/Evaluator.cpp (examineForDraw): implements material draw check.
231	* src/Engine.cpp (search): flips value if DRAW.
232	* src/Control.cpp (run): ends game on draw.
233
234	* src/Engine.cpp (search): add move ordering using list<>::sort(pr).
235	* src/Engine.cpp (search): added killer move heuristics.  Much speed improvement!!
236	* src/Engine.cpp (constructor): setting default depth to 6.
237
2382003-03-08  Noah Roberts  <nroberts@reachone.com>
239
240	* src/Lawyer.h (generateXXXMoves): move generators for each piece generate moves
241	  for the piece at the location specified.
242	* src/Lawyer.cpp (generateXXXMoves): implemented all move generators.
243	* src/Lawyer.cpp (generateMoves): uses piece move generators instead of doing them
244	  all in one method.
245
2462003-03-07  Noah Roberts  <nroberts@reachone.com>
247
248	* src/Lawyer.cpp (inCheck): implemented test for check.
249	* src/Lawyer.cpp (legalMove): uses expensive tests for user legal move checking.
250
251	* src/Board.h (makeNullMove): implemented null moves.
252	* src/Board.h (unmakeNullMove): reverse null move.
253
254	* src/Board.cpp (setPosition): reading FEN notation correctly now.
255	* src/Board.cpp (defaultPosition): corrected FEN notation for default board position.
256	* src/Board.cpp (getPosition): retrieves the correct position?
257
258	* src/Controller.cpp (run): implements 'setboard' command (not an option).
259
260	* src/Board.h (resetBoard): new method.
261	* src/Board.cpp (resetBoard): implemented board reset.
262	* src/Controller.cpp (run): implemented 'new' command.
263
264	* src/Controller.h: added history and startpos.
265	* src/Controller.cpp (run): implemented 'vomit' command.
266
267	* src/Lawyer.cpp (generateMoves): bug fixes.
268
269	* src/Board.cpp (getPosition): fixed fen bug putting '/' on end of position.
270
271	* src/Controller.cpp (run): moved startingPosition set to correct place.
272
2732003-03-04  Noah Roberts  <nroberts@reachone.com>
274
275	* src/Lawyer.h (board): Made association with board a pointer.
276	* src/Lawyer.h (setBoard): new method for changing the board.
277	* src/Engine.h (setBoard): new method for changing the board.
278
279	* src/Interface.h (parseXXX): removed control logic methods.
280
281	* src/Interface.h (mainInterface): removed singleton member.
282	* src/Interface.h (constructor): publicized constructor.
283
284	* src/Interface.h (constructor): added Controller parameter.
285
286	* src/Controller.h (getBoard): new accessor method.
287
288	* src/Interface.h (readLine): changed name of readAndPerform method.
289
290	* src/Interface.cpp (readLine): implemented 1st version of method.
291	* src/Interface.cpp (readReady): returning false for now.
292	* src/Interface.cpp: Implemented most of the Interface system.
293
294	* all files: numerous bug fixes to get compilation.
295
296	* src/Controller.cpp (run): listens for moves and 'quit', tells engine to think.
297
298	* src/Lawyer.cpp (generateMoves): fixed canon bug.
299
300	* src/Lawyer.cpp (kingsFace): new method.
301	* src/Lawyer.cpp (kingsFace): new method.
302	* src/Lawyer.cpp (legalMove): implemented legalMove - doesn't work right.
303
3042003-03-03  Noah Roberts  <nroberts@reachone.com>
305
306	* src/Controller.cpp (optionChanged): listen for 'computerColor'
307	  changes.
308
3092003-03-02  Noah Roberts  <nroberts@reachone.com>
310
311	* src/Engine.h: Engine no longer a singleton.
312	* src/Board.h:  Board is no longer a singleton.
313
314	* src/Engine.h (optionChanged): stopped listening for computerColor
315	  changes.
316
317	* src/Controller.h: new class interface.
318	* src/Controller.cpp: new class implementation begun.
319
320	* src/Lawyer.h (pieceMoves): removed static.
321	* src/Lawyer.h (board): stopped using board as singleton, renamed
322	  and retyped board association.
323	* src/Lawyer.cpp (generateMoves): numerous fixes to get it compiling.
324
3252003-03-01  Noah Roberts  <nroberts@reachone.com>
326
327	* src/Options.h: created class for processing and tracking setting
328	  options.
329
330	* src/Options.h: added observer patern support.
331	* src/Options.h (dispatchChangeNotice): implemented event dispatcher.
332	* src/Engine.h: made Engine an OptionObserver.
333	* src/Engine.cpp (optionChanged): listen for changes to searchPly &
334	  computerColor.
335	* src/Engine.cpp (constructor): observe Options.
336	* src/Interface.h: made Interface an OptionObserver.
337
338	* src/Engine.h: Engine is now a singleton.
339
3402003-02-28  Noah Roberts  <nroberts@reachone.com>
341
342	* src/Move.h (Move): added a new constructor that takes a std::string.
343	* src/Move.cpp (Move): implemented new construcor.
344
345	* src/Board.h (operator<<): added << operator.
346	* src/Board.cpp (operator<<): implemented << operator.
347
3482003-02-27  Noah Roberts  <nroberts@reachone.com>
349
350	* src/Engine.h (bestMove): added variable.
351	* src/Engine.cpp (search): implemented alpha-beta search.
352	* src/Engine.cpp (think): implemented basic think function.
353
354	* src/Interface.h: declaired Interface and its states.
355
356	* src/Move.h (operator<<): added << operator to class Move.
357	* src/Move.cpp: created implementation file and implemented << operator.
358
3592003-02-26  Noah Roberts  <nroberts@reachone.com>
360
361	* src/Lawyer.h (generateMoves): added new function.
362	* src/Lawyer.cpp (generateMoves): implemented new function.
363
364	* src/Evaluator.h: created new class and declaired a single static
365	  member function.
366	* src/Evaluator.cpp (evaluatePosition): implemented material evaluation.
367
368	* src/Engine.h: started creating Engine class interface.
369
3702003-02-25  Noah Roberts  <nroberts@reachone.com>
371
372	* src/Board.h: declaired singleton method and class instance member.
373	* src/Board.cpp: defined class instance member.
374	* src/Lawyer.h: declaired link to Board singleton.
375	* src/Lawyer.h (generateCaptures): began implementing captures
376	  generation function.
377
3782003-02-24  Noah Roberts  <nroberts@reachone.com>
379
380	* src/Lawyer.h: Assigned move generation to this class.
381	* src/Lawyer.cpp: Created implementation file.
382	* src/Lawyer.cpp: Moved initialization of arrays to implementation.
383	* src/Lawyer.h: Changed arrays to pointers and removed initialization.
384	* src/Lawyer.h: Removed static qualifier from members.
385	* src/Lawyer.h: Added constructor declairation.
386
3872003-02-23  Noah Roberts  <nroberts@reachone.com>
388
389	* Created new development tree tsito (The Secret Inside The Orange)
390
391	* src/lib/getline.h: created new header file for getline function.
392	* src/lib/getline_unix.cpp (getline): implemented non-blocking
393	  getline().
394
395	* src/Board.h: created interface for Board class.
396	* src/Board.cpp: implemented Board class methods except for inCheck().
397
398	* src/Move.h: created Move class and implemented inline functions.
399
400	* src/Lawyer.h: Began work on Lawyer class.
401