Main   Namespaces   Classes   Hierarchy   Annotated   Files   Compound   Global   Pages  

BenzeneSolver.hpp

Go to the documentation of this file.
00001 //----------------------------------------------------------------------------
00002 /** @file BenzeneSolver.hpp
00003  */
00004 //----------------------------------------------------------------------------
00005 
00006 #ifndef BENZENESOLVER_H
00007 #define BENZENESOLVER_H
00008 
00009 #include "Hex.hpp"
00010 #include "ConstBoard.hpp"
00011 
00012 _BEGIN_BENZENE_NAMESPACE_
00013 
00014 //----------------------------------------------------------------------------
00015 
00016 struct SolverDataFlags
00017 {
00018     /** Marks the proof as that of a transposition of some other
00019         state. */
00020     static const int TRANSPOSITION = 1;
00021 
00022     /** Marks the proof as a mirror transposition of some other
00023         state. */
00024     static const int MIRROR_TRANSPOSITION = 2;
00025 };
00026 
00027 //----------------------------------------------------------------------------
00028 
00029 /** Contains a bestmove. */
00030 template<class T>
00031 struct HasBestMoveConcept
00032 {
00033     void constraints() 
00034     {
00035         const T t;
00036         HexPoint point = t.m_bestMove;
00037         SG_UNUSED(point);
00038     }
00039 };
00040 
00041 /** Contains a flag. */
00042 template<class T>
00043 struct HasFlagsConcept
00044 {
00045     void constraints() 
00046     {
00047         const T t;
00048         int flags = t.m_flags;
00049         SG_UNUSED(flags);
00050     }
00051 };
00052 
00053 /** Object can be mirrored. */
00054 template<class T>
00055 struct HasMirrorConcept
00056 {
00057     void constraints() 
00058     {
00059         const ConstBoard& brd = ConstBoard::Get(1, 1);
00060         T t;
00061         t.Mirror(brd);
00062     }
00063 };
00064 
00065 //----------------------------------------------------------------------------
00066 
00067 _END_BENZENE_NAMESPACE_
00068 
00069 #endif // BENZENESOLVER_H


6 Jan 2011 Doxygen 1.6.3