00001 /* openingBookTracer.h 00002 */ 00003 #ifndef _OPENINGBOOKTRACER_H 00004 #define _OPENINGBOOKTRACER_H 00005 00006 #include "osl/move.h" 00007 00008 namespace osl 00009 { 00010 namespace game_playing 00011 { 00015 class OpeningBookTracer 00016 { 00017 public: 00018 virtual ~OpeningBookTracer(); 00020 virtual OpeningBookTracer* clone() const = 0; 00022 virtual void update(Move)=0; 00027 virtual const Move selectMove() const=0; 00028 virtual bool isOutOfBook() const=0; 00032 virtual void popMove()=0; 00033 }; 00034 00038 class NullBook : public OpeningBookTracer 00039 { 00040 public: 00041 ~NullBook(); 00042 OpeningBookTracer* clone() const 00043 { 00044 return new NullBook(); 00045 } 00046 00047 void update(Move); 00048 const Move selectMove() const; 00049 bool isOutOfBook() const; 00050 void popMove(); 00051 }; 00052 00053 } // namespace game_playing 00054 } // namespace osl 00055 00056 #endif /* _OPENINGBOOKTRACER_H */ 00057 // ;;; Local Variables: 00058 // ;;; mode:c++ 00059 // ;;; c-basic-offset:2 00060 // ;;; End: