00001 //---------------------------------------------------------------------------- 00002 /** @file GoBoardRestorer.h */ 00003 //---------------------------------------------------------------------------- 00004 00005 #ifndef GO_BOARDRESTORER_H 00006 #define GO_BOARDRESTORER_H 00007 00008 #include "GoBoard.h" 00009 00010 //---------------------------------------------------------------------------- 00011 00012 /** Remembers the state of a board and restores it in its destructor. */ 00013 class GoBoardRestorer 00014 { 00015 public: 00016 GoBoardRestorer(GoBoard& bd); 00017 00018 ~GoBoardRestorer(); 00019 00020 private: 00021 typedef SgArrayList<GoPlayerMove,GO_MAX_NUM_MOVES> MoveList; 00022 00023 GoBoard& m_bd; 00024 00025 int m_size; 00026 00027 GoRules m_rules; 00028 00029 MoveList m_moves; 00030 }; 00031 00032 //---------------------------------------------------------------------------- 00033 00034 #endif // GO_BOARDRESTORER_H