2003-07-04 Noah Roberts * src/Controller.cpp (run): don't move if the available move is null - continue thinking. 2003-06-06 Noah Roberts * src/Interface.h: removed implementation of constructor and added destructor declairation in CXBoardState. * src/Interface.cpp: implemented constructor and destructor for CXBoardState. * src/Interface.h (CXBoardState::printMove): changed "Move" to "move". * src/Engine.cpp (think): send post output to stdout. * src/Options.cpp (decipherCommandArgs): added -black to do same as -blue. * src/Options.cpp (isOption): added 'black' to do same as 'blue'. 2003-05-26 Noah Roberts * Created new tsito2 development tree. * src/common.h: added common definitions file. * src/BitBoard.h: Began work on bitset<> board representation. 2003-05-03 Noah Roberts * src/Controller.cpp: added sleep to read loop for UNIX. 2003-04-29 Noah Roberts * src/Engine.cpp (think): fixed bug for when incremental search is turned off. * src/Options.cpp (isOption): fixed encapsulation breakage for 'st'. * src/Controller.cpp (optionChanged): listen for 'st', set and start timers. * src/Options.cpp (isOption): removed listener for 'quiescence' - use set instead. * doc/tsito.1: documented new commands and stuff. 2003-04-23 Noah Roberts //* src/Transposition (flush): set depth to 0 so that all old positions are // escensially deleted. * src/Engine.cpp (tableSearch): only use result if previous search was > that our current depth, not >=. * src/Options.cpp: added 'go' command. * src/Command.cpp: added '?', 'undo', 'remove', and fixed bug for 1 char commands. * src/Controller.cpp: reversed order of test for chase/check. 2003-04-22 Noah Roberts * src/Interface.cpp (printMove): fixed move printing for user interface. * src/Lawyer.h: added functions to look for special rules endgames. * src/Lawyer.cpp (gameWonByChase): implemented perpetual chase endgame. * src/Lawyer.cpp (gameWonByPCheck): implemented perpetual check endgame. * src/Engine.cpp (search/quiescence): thinks about perpetual rules. 2003-04-16 Noah Roberts * src/Engine.h: added variables and methods to track search state. * src/Engine.cpp (think): sets search state and stuff. * src/Engine.cpp (getMove): sets search state to between. * src/Engine.cpp (search): saves current best pv if aborting. 2003-04-12 Noah Roberts * tsito.pro: added tmake input file for Zaurus build * makefile.arm: added Makefile for Zaurus build. * makefile.arm: changed linker to g++ * makefile.arm: added -DBOOKDIR to CXXFLAGS. * src/Engine.cpp: reimplemented quiescence. SLOW! 2003-04-10 Noah Roberts * src/Evaluate.cpp: removed unused code. * src/everything: added commenting to code. * src/Interface.cpp (readLine): rewrote to be safer. * src/Move.h: removed SEE score. 2003-04-09 Noah Roberts * src/Evaluator.cpp (evaluatePosition): complete rewrite using piece indexes instead of board array. * src/Options.cpp: added lots of new options. * src/Engine.cpp(optionChanged): started listening for search parameter options. * src/Command.cpp(optionChanged): allow computerColor to be NOCOLOR for force mode. * doc/tsito.1: first version of man document. 2003-04-08 Noah Roberts * src/Engine.cpp: lots of stuff...need to be more diligent about changelog. 2003-04-06 Noah Roberts * src/Board.h: Removed some inline functions and placed in Board.cpp. * src/Board.h: added variables and methods to implement piece indexing. * src/Board.cpp: implemented piece indexing. 2003-04-05 Noah Roberts * src/Engine.cpp: Altered search implementation to share code between several algorithms. * src/Engine.cpp: Implemented verified null move and hash table lookup. * src/Engine.cpp: Implemented alpha-beta, negascout, and mtd(f). * src/Engine.h: added variables to alter search algorithm and parameters. * src/Engine.cpp (think): made output of thinking closer to xboard protocol. 2003-03-29 Noah Roberts * Transposition.h: created interface for table. * Transposition.cpp: implemented table. * Board.h: fixed some bugs having to do with hash table and stopped hashing empty squares. * Engine.cpp: started using table in search and access only in quiescence. Also prints amount of subtrees cut off by table when it moves. 2003-03-27 Noah Roberts * src/OpeningBook.h: use ios:in instead of ios::nocreate. * src/Engine.h (search): added null move. * src/Engine.h (search): redo ply with 'legalonly' flag if moving into check. * src/Engine.h (search): listen to 'legalonly' flag again but don't pass it down the tree. * src/Board.h (setPosition): fixed hash initialization at empty places. 2003-03-26 Noah Roberts * src/OpeningBook.h: totally changed interface. * src/OpeningBook.cpp: implemented an opening book class. * src/Engine.h: added ascociation for opening book. * src/Engine.cpp: instantiates opening book and uses it if position appears. * configure.in: added define for DATADIR. * Makefile.am: added book.dat to dist. 2003-03-24 Noah Roberts * src/OpeningBook.h: began work on opening book classes. * book.dat: preliminary opening book data file. 2003-03-23 Noah Roberts * src/Evaluator.cpp (computeSee): basic SEE computation. * src/Evaluator.cpp (pieceValueByLoc): positional matrix. * src/Evaluator.cpp (evaluatePosition): evaluates by positional matrix instead of straight piece value. * src/Engine.cpp (quiescence): implemented quiescence search. * src/Engine.cpp (search): uses quiescence if turned on. * src/Engine.cpp (::compareMoves): compare by SEE. * src/Engine.cpp (filter): filters out non captures and captures with SEE <= 5. * src/Engine.cpp (optionChanged): listen for "quiesc". * src/Engine.cpp (const): quiescence turned off by default. * src/Engine.cpp (const): set default depth back to 4. * src/Engine.cpp (::compareMoves): stopped checking for repeats. 2003-03-19 Noah Roberts * src/Command.cpp (parseCommand): implemented. * src/Command.cpp (constructor): implemented. * src/Command.cpp (isCommand): implemented. * src/Command.cpp (vomit): implemented. * src/Command.cpp (new): implemented. * src/Command.cpp (setBoard): implemented. * src/Controller.h (vars): added command association. * src/Controller.cpp (run): use command. * src/Engine.cpp (search): only add killers if not in check. (bugfix) 2003-03-18 Noah Roberts * src/Options.cpp (decipherCommandArgs): added new -ts option to set table size. * src/Board.h: Changed hashes to u_int64 (unsigned long long). 2003-03-17 Noah Roberts * src/Command.h: created new interface file for command system. * src/Board.h: Changed hashes to 64 bit unsigned doubles. 2003-03-12 Noah Roberts * bug fixes. 2003-03-11 Noah Roberts * src/Lawyer.h (underAttack): method to check if piece is being attacked. * src/Lawyer.cpp (underAttack): implementation. 2003-03-10 Noah Roberts * src/Evaluator.cpp (evaluateMobility): more evaluation. 2003-03-09 Noah Roberts * src/Board.h (gameOver): added boolean gameover flag and methods. * src/Controller.cpp (run): sets flag if computer side is in mate, doesn't move if flag is set. * src/Controller.cpp (run): prints RESULT format command if game is over. * src/Engine.h (search): added legalonly flag. * src/Engine.cpp (search): searches only legal moves if flag is set. * src/Evaluator.h (examineForDraw): check for material based draw condition. * src/Evaluator.cpp (examineForDraw): implements material draw check. * src/Engine.cpp (search): flips value if DRAW. * src/Control.cpp (run): ends game on draw. * src/Engine.cpp (search): add move ordering using list<>::sort(pr). * src/Engine.cpp (search): added killer move heuristics. Much speed improvement!! * src/Engine.cpp (constructor): setting default depth to 6. 2003-03-08 Noah Roberts * src/Lawyer.h (generateXXXMoves): move generators for each piece generate moves for the piece at the location specified. * src/Lawyer.cpp (generateXXXMoves): implemented all move generators. * src/Lawyer.cpp (generateMoves): uses piece move generators instead of doing them all in one method. 2003-03-07 Noah Roberts * src/Lawyer.cpp (inCheck): implemented test for check. * src/Lawyer.cpp (legalMove): uses expensive tests for user legal move checking. * src/Board.h (makeNullMove): implemented null moves. * src/Board.h (unmakeNullMove): reverse null move. * src/Board.cpp (setPosition): reading FEN notation correctly now. * src/Board.cpp (defaultPosition): corrected FEN notation for default board position. * src/Board.cpp (getPosition): retrieves the correct position? * src/Controller.cpp (run): implements 'setboard' command (not an option). * src/Board.h (resetBoard): new method. * src/Board.cpp (resetBoard): implemented board reset. * src/Controller.cpp (run): implemented 'new' command. * src/Controller.h: added history and startpos. * src/Controller.cpp (run): implemented 'vomit' command. * src/Lawyer.cpp (generateMoves): bug fixes. * src/Board.cpp (getPosition): fixed fen bug putting '/' on end of position. * src/Controller.cpp (run): moved startingPosition set to correct place. 2003-03-04 Noah Roberts * src/Lawyer.h (board): Made association with board a pointer. * src/Lawyer.h (setBoard): new method for changing the board. * src/Engine.h (setBoard): new method for changing the board. * src/Interface.h (parseXXX): removed control logic methods. * src/Interface.h (mainInterface): removed singleton member. * src/Interface.h (constructor): publicized constructor. * src/Interface.h (constructor): added Controller parameter. * src/Controller.h (getBoard): new accessor method. * src/Interface.h (readLine): changed name of readAndPerform method. * src/Interface.cpp (readLine): implemented 1st version of method. * src/Interface.cpp (readReady): returning false for now. * src/Interface.cpp: Implemented most of the Interface system. * all files: numerous bug fixes to get compilation. * src/Controller.cpp (run): listens for moves and 'quit', tells engine to think. * src/Lawyer.cpp (generateMoves): fixed canon bug. * src/Lawyer.cpp (kingsFace): new method. * src/Lawyer.cpp (kingsFace): new method. * src/Lawyer.cpp (legalMove): implemented legalMove - doesn't work right. 2003-03-03 Noah Roberts * src/Controller.cpp (optionChanged): listen for 'computerColor' changes. 2003-03-02 Noah Roberts * src/Engine.h: Engine no longer a singleton. * src/Board.h: Board is no longer a singleton. * src/Engine.h (optionChanged): stopped listening for computerColor changes. * src/Controller.h: new class interface. * src/Controller.cpp: new class implementation begun. * src/Lawyer.h (pieceMoves): removed static. * src/Lawyer.h (board): stopped using board as singleton, renamed and retyped board association. * src/Lawyer.cpp (generateMoves): numerous fixes to get it compiling. 2003-03-01 Noah Roberts * src/Options.h: created class for processing and tracking setting options. * src/Options.h: added observer patern support. * src/Options.h (dispatchChangeNotice): implemented event dispatcher. * src/Engine.h: made Engine an OptionObserver. * src/Engine.cpp (optionChanged): listen for changes to searchPly & computerColor. * src/Engine.cpp (constructor): observe Options. * src/Interface.h: made Interface an OptionObserver. * src/Engine.h: Engine is now a singleton. 2003-02-28 Noah Roberts * src/Move.h (Move): added a new constructor that takes a std::string. * src/Move.cpp (Move): implemented new construcor. * src/Board.h (operator<<): added << operator. * src/Board.cpp (operator<<): implemented << operator. 2003-02-27 Noah Roberts * src/Engine.h (bestMove): added variable. * src/Engine.cpp (search): implemented alpha-beta search. * src/Engine.cpp (think): implemented basic think function. * src/Interface.h: declaired Interface and its states. * src/Move.h (operator<<): added << operator to class Move. * src/Move.cpp: created implementation file and implemented << operator. 2003-02-26 Noah Roberts * src/Lawyer.h (generateMoves): added new function. * src/Lawyer.cpp (generateMoves): implemented new function. * src/Evaluator.h: created new class and declaired a single static member function. * src/Evaluator.cpp (evaluatePosition): implemented material evaluation. * src/Engine.h: started creating Engine class interface. 2003-02-25 Noah Roberts * src/Board.h: declaired singleton method and class instance member. * src/Board.cpp: defined class instance member. * src/Lawyer.h: declaired link to Board singleton. * src/Lawyer.h (generateCaptures): began implementing captures generation function. 2003-02-24 Noah Roberts * src/Lawyer.h: Assigned move generation to this class. * src/Lawyer.cpp: Created implementation file. * src/Lawyer.cpp: Moved initialization of arrays to implementation. * src/Lawyer.h: Changed arrays to pointers and removed initialization. * src/Lawyer.h: Removed static qualifier from members. * src/Lawyer.h: Added constructor declairation. 2003-02-23 Noah Roberts * Created new development tree tsito (The Secret Inside The Orange) * src/lib/getline.h: created new header file for getline function. * src/lib/getline_unix.cpp (getline): implemented non-blocking getline(). * src/Board.h: created interface for Board class. * src/Board.cpp: implemented Board class methods except for inCheck(). * src/Move.h: created Move class and implemented inline functions. * src/Lawyer.h: Began work on Lawyer class.