00001 #ifndef MMANN_FCENUMS_H
00002 #define MMANN_FCENUMS_H
00003
00011
00013 enum FCSMoveTypes
00014 {
00015 FCS_MOVE_TYPE_STACK_TO_STACK,
00016 FCS_MOVE_TYPE_STACK_TO_FREECELL,
00017 FCS_MOVE_TYPE_FREECELL_TO_STACK,
00018 FCS_MOVE_TYPE_FREECELL_TO_FREECELL,
00019 FCS_MOVE_TYPE_STACK_TO_FOUNDATION,
00020 FCS_MOVE_TYPE_FREECELL_TO_FOUNDATION,
00021 FCS_MOVE_TYPE_FLIP_CARD,
00022 FCS_MOVE_TYPE_DEAL_GYPSY_TALON,
00023 FCS_MOVE_TYPE_KLONDIKE_TALON_TO_STACK,
00024 FCS_MOVE_TYPE_KLONDIKE_TALON_TO_FOUNDATION,
00025 FCS_MOVE_TYPE_KLONDIKE_FLIP_TALON,
00026 FCS_MOVE_TYPE_KLONDIKE_REDEAL_TALON,
00027 FCS_MOVE_TYPE_SEQ_TO_FOUNDATION,
00028 FCS_MOVE_TYPE_CANONIZE,
00029 FCS_MOVE_TYPE_SEPARATOR,
00030 FCS_MOVE_TYPE_NULL,
00031 };
00032
00034 enum FCEmptyStacksFillType {FCS_ES_FILLED_BY_ANY_CARD,
00035 FCS_ES_FILLED_BY_KINGS_ONLY,
00036 FCS_ES_FILLED_BY_NONE};
00037
00039 enum FCSolvingMethodType {FCS_METHOD_NONE = -1,
00040 FCS_METHOD_HARD_DFS = 0,
00041 FCS_METHOD_SOFT_DFS = 1,
00042 FCS_METHOD_BFS = 2,
00043 FCS_METHOD_A_STAR = 3,
00044 FCS_METHOD_OPTIMIZE = 4,
00045 FCS_METHOD_RANDOM_DFS = 5};
00046
00048 enum FCStateType {FC_DEBUG_STATE = 1,
00049 FC_COMPACT_STATE,
00050 FC_INDIRECT_STATE,
00051 FC_TALON_DEBUG_STATE,
00052 FC_TALON_COMPACT_STATE,
00053 FC_TALON_INDIRECT_STATE};
00054
00056 enum FCSTalonType {FCS_TALON_NONE,
00057 FCS_TALON_GYPSY,
00058 FCS_TALON_KLONDIKE};
00059
00061 enum BuildSequenceByEnum{FCS_SEQ_BUILT_BY_SUIT = 1,
00062 FCS_SEQ_BUILT_BY_ALTERNATE_COLOR,
00063 FCS_SEQ_BUILT_BY_RANK};
00064
00066 enum FCStorageType {FC_AVL_TREE = 1,
00067 FC_AVL_RED_BLACK_TREE,
00068 FC_RED_BLACK_TREE,
00069 FC_GLIB_TREE,
00070 FC_GLIB_HASH,
00071 FC_INTERNAL_HASH,
00072 FC_INDIRECT_HASH};
00073
00075 enum FCSStateSolvingReturnCodes
00076 {
00077 FCS_STATE_WAS_SOLVED,
00078 FCS_STATE_IS_NOT_SOLVEABLE,
00079 FCS_STATE_ALREADY_EXISTS,
00080 FCS_STATE_EXCEEDS_MAX_NUM_TIMES,
00081 FCS_STATE_BEGIN_SUSPEND_PROCESS,
00082 FCS_STATE_SUSPEND_PROCESS,
00083 FCS_STATE_EXCEEDS_MAX_DEPTH,
00084 FCS_STATE_ORIGINAL_STATE_IS_NOT_SOLVEABLE,
00085 FCS_STATE_INVALID_STATE,
00086 FCS_STATE_NOT_BEGAN_YET,
00087 FCS_STATE_DOES_NOT_EXIST,
00088 FCS_STATE_OPTIMIZED,
00089 };
00090
00092 enum FCSVisitEnum
00093 {
00094 FCS_VISITED_NOT_VISITED = 0x0,
00095 FCS_VISITED_VISITED = 0x1,
00096 FCS_VISITED_IN_SOLUTION_PATH = 0x2,
00097 FCS_VISITED_IN_OPTIMIZED_PATH = 0x4,
00098 };
00099
00100 #endif