00001 #ifndef PYSOL_GAME_BOARDS_H 00002 #define PYSOL_GAME_BOARDS_H 00003 00011 00012 #include "AFreecellGameBoard.h" 00013 00019 double PysolRandom64(integer64* Seed); 00020 00028 int PysolRandom64Int(integer64* Seed, int LowerBound, int UpperBound); 00029 00033 class APysolFreecellGameBoard : public AFreecellGameBoard 00034 { 00035 public: 00037 virtual ~APysolFreecellGameBoard(); 00038 00042 virtual void Shuffle(int Seed); 00043 00047 virtual int GetGameBoardSize() = 0; 00048 00049 protected: 00051 APysolFreecellGameBoard(bool Display10AsT); 00053 APysolFreecellGameBoard(); 00054 00063 virtual char* CardToString(char* String, char Card, bool AppendWhiteSpace, bool FlipCondition = false); 00064 }; 00065 00067 class PysolFreecellGameBoard : public APysolFreecellGameBoard 00068 { 00069 public: 00071 PysolFreecellGameBoard(bool Display10AsT); 00073 virtual ~PysolFreecellGameBoard(); 00074 00078 virtual void Deal(char* GameBoard); 00079 00083 virtual int GetGameBoardSize(); 00084 }; 00085 00087 class PysolDerKatzenschwantzGameBoard : public APysolFreecellGameBoard 00088 { 00089 public: 00091 PysolDerKatzenschwantzGameBoard(bool Display10AsT); 00093 virtual ~PysolDerKatzenschwantzGameBoard(); 00094 00098 virtual void Deal(char* GameBoard); 00099 00103 virtual int GetGameBoardSize(); 00104 00108 virtual int GetNumberOfCardsInDeck(); 00109 }; 00110 00114 class PysolDieSchlangeGameBoard : public PysolDerKatzenschwantzGameBoard 00115 { 00116 public: 00118 PysolDieSchlangeGameBoard(bool Display10AsT); 00120 virtual ~PysolDieSchlangeGameBoard(); 00121 00125 virtual void Deal(char* GameBoard); 00126 00130 virtual int GetGameBoardSize(); 00131 }; 00132 00134 class PysolForecellGameBoard : public APysolFreecellGameBoard 00135 { 00136 public: 00138 PysolForecellGameBoard(bool Display10AsT); 00140 virtual ~PysolForecellGameBoard(); 00141 00145 virtual void Deal(char* GameBoard); 00146 00150 virtual int GetGameBoardSize(); 00151 }; 00152 00154 class PysolEightOffGameBoard : public APysolFreecellGameBoard 00155 { 00156 public: 00158 PysolEightOffGameBoard(bool Display10AsT); 00160 virtual ~PysolEightOffGameBoard(); 00161 00165 virtual void Deal(char* GameBoard); 00166 00170 virtual int GetGameBoardSize(); 00171 }; 00172 00174 class PysolSeahavenTowersGameBoard : public APysolFreecellGameBoard 00175 { 00176 public: 00178 PysolSeahavenTowersGameBoard(bool Display10AsT); 00180 virtual ~PysolSeahavenTowersGameBoard(); 00181 00185 virtual void Deal(char* GameBoard); 00186 00190 virtual int GetGameBoardSize(); 00191 }; 00192 00194 class PysolBakersDozenGameBoard : public APysolFreecellGameBoard 00195 { 00196 public: 00198 PysolBakersDozenGameBoard(bool Display10AsT); 00200 virtual ~PysolBakersDozenGameBoard(); 00201 00205 virtual void Deal(char* GameBoard); 00206 00210 virtual int GetGameBoardSize(); 00211 }; 00212 00214 class PysolGypsyGameBoard : public PysolDerKatzenschwantzGameBoard 00215 { 00216 public: 00218 PysolGypsyGameBoard(bool Display10AsT); 00220 virtual ~PysolGypsyGameBoard(); 00221 00225 virtual void Deal(char* GameBoard); 00226 00230 virtual int GetGameBoardSize(); 00231 }; 00232 00234 class PysolKlondikeGameBoard : public APysolFreecellGameBoard 00235 { 00236 public: 00238 PysolKlondikeGameBoard(bool Display10AsT); 00240 virtual ~PysolKlondikeGameBoard(); 00241 00245 virtual void Deal(char* GameBoard); 00246 00250 virtual int GetGameBoardSize(); 00251 00252 }; 00253 00255 class PysolWhiteheadGameBoard : public APysolFreecellGameBoard 00256 { 00257 public: 00259 PysolWhiteheadGameBoard(bool Display10AsT); 00261 virtual ~PysolWhiteheadGameBoard(); 00262 00266 virtual void Deal(char* GameBoard); 00267 00271 virtual int GetGameBoardSize(); 00272 }; 00273 00275 class PysolSmallHarpGameBoard : public APysolFreecellGameBoard 00276 { 00277 public: 00279 PysolSmallHarpGameBoard(bool Display10AsT); 00281 virtual ~PysolSmallHarpGameBoard(); 00282 00286 virtual void Deal(char* GameBoard); 00287 00291 virtual int GetGameBoardSize(); 00292 }; 00293 00295 class PysolSimpleSimonGameBoard : public APysolFreecellGameBoard 00296 { 00297 public: 00299 PysolSimpleSimonGameBoard(bool Display10AsT); 00301 virtual ~PysolSimpleSimonGameBoard(); 00302 00306 virtual void Deal(char* GameBoard); 00307 00311 virtual int GetGameBoardSize(); 00312 }; 00313 00315 class PysolYukonGameBoard : public APysolFreecellGameBoard 00316 { 00317 public: 00319 PysolYukonGameBoard(bool Display10AsT); 00321 virtual ~PysolYukonGameBoard(); 00322 00326 virtual void Deal(char* GameBoard); 00327 00331 virtual int GetGameBoardSize(); 00332 }; 00333 00335 class PysolBeleagueredCastleGameBoard : public APysolFreecellGameBoard 00336 { 00337 public: 00339 PysolBeleagueredCastleGameBoard(bool Display10AsT); 00341 virtual ~PysolBeleagueredCastleGameBoard(); 00342 00346 virtual void Deal(char* GameBoard); 00347 00351 virtual int GetGameBoardSize(); 00352 }; 00353 00355 class PysolCitadelGameBoard : public APysolFreecellGameBoard 00356 { 00357 public: 00359 PysolCitadelGameBoard(bool Display10AsT); 00361 virtual ~PysolCitadelGameBoard(); 00362 00366 virtual void Deal(char* GameBoard); 00367 00371 virtual int GetGameBoardSize(); 00372 }; 00373 00375 class PysolFanGameBoard : public APysolFreecellGameBoard 00376 { 00377 public: 00379 PysolFanGameBoard(bool Display10AsT); 00381 virtual ~PysolFanGameBoard(); 00382 00386 virtual void Deal(char* GameBoard); 00387 00391 virtual int GetGameBoardSize(); 00392 }; 00393 00394 #endif