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


17 Jun 2010 Doxygen 1.4.7