00001 #ifndef MMANN_INTERNAL_STATE_H 00002 #define MMANN_INTERNAL_STATE_H 00003 00011 00012 #include "FCState.h" 00013 #include "FCTalonState.h" 00014 00015 template <class StateWithLocation> 00016 class FCSCompactStateWithLocations; 00017 00018 class FCSIndirectState; 00019 00021 class FCSIndirectCard : public FCSCard 00022 { 00023 public: 00025 FCSIndirectCard(); 00026 00028 ~FCSIndirectCard(); 00029 00033 void Copy(FCSCard* Card); 00034 00036 void EmptyCard(); 00037 00039 bool IsEmptyCard(); 00040 00044 char GetCardNumber(); 00045 00049 char GetSuit(); 00050 00054 char GetFlipped(); 00055 00059 void SetSuit(char Suit); 00060 00064 void SetCardNumber(char CardNumber); 00065 00069 void SetFlipped(char Flipped); 00070 00074 int GetClassSize(); 00075 00077 char m_Card; 00078 }; 00079 00081 class FCSIndirectState : public FCSState 00082 { 00083 public: 00085 FCSIndirectState(); 00086 00088 virtual ~FCSIndirectState(); 00089 00093 int GetClassSize(); 00094 00100 int StackCompare(int StackPosition1, int StackPosition2); 00101 00107 int StackSortCompare(int StackPosition1, int StackPosition2); 00108 00113 int Compare(FCSIndirectState* State); 00114 00118 void Copy(FCSIndirectState* State); 00119 00121 FCSIndirectCard* m_Stacks[MAX_NUM_STACKS]; 00122 00124 FCSIndirectCard m_Freecells[MAX_NUM_FREECELLS]; 00125 00127 char m_Foundations[MAX_NUM_DECKS*4]; 00128 }; 00129 00130 00131 #endif