Index   Main   Namespaces   Classes   Hierarchy   Annotated   Files   Compound   Global   Pages  

GoMotive.h

Go to the documentation of this file.
00001 //----------------------------------------------------------------------------
00002 /** @file GoMotive.h
00003     Enumerations GoMotive and GoModifier. */
00004 //----------------------------------------------------------------------------
00005 
00006 #ifndef GO_MOTIVE_H
00007 #define GO_MOTIVE_H
00008 
00009 #include <bitset>
00010 #include <iosfwd>
00011 
00012 //----------------------------------------------------------------------------
00013 
00014 /** Move motives.
00015     These motives were originally used in the Explorer Go program. */
00016 enum GoMotive
00017 {
00018     /** Dummy motive used as placeholder */
00019     GO_MOT_NONE,
00020 
00021     /** Random move. currently unused. */
00022     GO_MOT_RANDOM,
00023 
00024     /** Capture block tactically. */
00025     GO_MOT_CAPTURE,
00026 
00027     /** Escape with block tactically. */
00028     GO_MOT_ESCAPE,
00029 
00030     /** Connect blocks or chains */
00031     GO_MOT_CONNECT,
00032 
00033     /** Cut chains. */
00034     GO_MOT_CUT,
00035 
00036     /** Move to divide area */
00037     GO_MOT_TO_DIVIDE,
00038 
00039     /** Urgent pattern move */
00040     GO_MOT_URGENT,
00041 
00042     /** Expand group or zone */
00043     GO_MOT_EXPAND,
00044 
00045     /** Stabilize block */
00046     GO_MOT_STABILIZE,
00047 
00048     /** Reduce zone (or group?) */
00049     GO_MOT_REDUCE,
00050 
00051     /** Defend zone */
00052     GO_MOT_DEFEND,
00053 
00054     /** Invade zone */
00055     GO_MOT_INVADE,
00056 
00057     /** Sente endgame move */
00058     GO_MOT_SENTE,
00059 
00060     /** Forced reply or forced pattern move */
00061     GO_MOT_FORCED,
00062 
00063     /** Move to make one eye */
00064     GO_MOT_ONEYE,
00065 
00066     /** Move to make two eyes */
00067     GO_MOT_TWOEYE,
00068 
00069     /** Endgame move */
00070     GO_MOT_YOSE,
00071 
00072     /** Attack group */
00073     GO_MOT_ATTACK,
00074 
00075     /** Defend group */
00076     GO_MOT_SAVE,
00077 
00078     /** Double atari */
00079     GO_MOT_DOUBLEATARI,
00080 
00081     /** Dtari or other tactical threat */
00082     GO_MOT_ATARI,
00083 
00084     /** Ko threat */
00085     GO_MOT_KOTHREAT,
00086 
00087     /** Total number of motives */
00088     _GO_NU_MOTIVE
00089 };
00090 
00091 typedef std::bitset<_GO_NU_MOTIVE> GoMotives;
00092 
00093 std::ostream& operator<<(std::ostream& out, GoMotive motive);
00094 
00095 //----------------------------------------------------------------------------
00096 
00097 /** Move motive modifier. */
00098 enum GoModifier
00099 {
00100     GO_MOD_NORMAL,
00101 
00102     GO_MOD_VERY_BIG,
00103 
00104     GO_MOD_BIG,
00105 
00106     GO_MOD_SMALL,
00107 
00108     GO_MOD_VERY_SMALL,
00109 
00110     _GO_NU_MODIFIER
00111 };
00112 
00113 std::ostream& operator<<(std::ostream& out, GoModifier modifier);
00114 
00115 //----------------------------------------------------------------------------
00116 
00117 #endif // GO_MOTIVE_H


Sun Mar 13 2011 Doxygen 1.7.1