00001 #ifndef MMANN_DEBUG_STATE_H 00002 #define MMANN_DEBUG_STATE_H 00003 00011 00012 #include "FCState.h" 00013 #include "FCTalonState.h" 00014 00015 template <class StateWithLocation> 00016 class FCSDebugStateWithLocations; 00017 00019 class FCSDebugCard : public FCSCard 00020 { 00021 public: 00022 00026 //classes currently created by the template 00027 friend FCSDebugStateWithLocations<FCSTalonStateWithLocations>; 00028 00032 //classes currently created by the template 00033 friend FCSDebugStateWithLocations<FCSStateWithLocations>; 00034 00036 FCSDebugCard(); 00037 00039 virtual ~FCSDebugCard(); 00040 00044 void Copy(FCSCard* Card); 00045 00047 void EmptyCard(); 00048 00050 bool IsEmptyCard(); 00051 00055 char GetCardNumber(); 00056 00060 char GetSuit(); 00061 00065 char GetFlipped(); 00066 00070 void SetSuit(char Suit); 00071 00075 void SetCardNumber(char CardNumber); 00076 00080 void SetFlipped(char Flipped); 00081 00085 int GetClassSize(); 00086 00087 private: 00089 char m_CardNumber; 00090 00092 char m_Suit; 00093 00095 char m_Flags; 00096 }; 00097 00099 class FCSDebugStack 00100 { 00101 public: 00103 FCSDebugStack(); 00104 00109 int Compare(FCSDebugStack* Stack); 00110 00112 int m_NumberOfCards; 00113 00115 FCSDebugCard m_Cards[MAX_NUM_CARDS_IN_A_STACK]; 00116 }; 00117 00119 class FCSDebugState : public FCSState 00120 { 00121 public: 00123 FCSDebugState(); 00124 00126 int GetClassSize(); 00127 00133 int StackCompare(int StackPosition1, int StackPosition2); 00134 00139 int Compare(FCSDebugState* State); 00140 00142 FCSDebugStack m_Stacks[MAX_NUM_STACKS]; 00143 00145 FCSDebugCard m_Freecells[MAX_NUM_FREECELLS]; 00146 00148 char m_Foundations[MAX_NUM_DECKS*4]; 00149 }; 00150 00151 00152 #endif