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