summaryrefslogtreecommitdiff
path: root/tableau.h
diff options
context:
space:
mode:
Diffstat (limited to 'tableau.h')
-rw-r--r--tableau.h122
1 files changed, 64 insertions, 58 deletions
diff --git a/tableau.h b/tableau.h
index b2ab3fc..d09797e 100644
--- a/tableau.h
+++ b/tableau.h
@@ -17,90 +17,96 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * $Id: tableau.h 87 2007-06-22 22:37:36Z tom $
+ * $Id: tableau.h 95 2007-09-21 23:01:10Z tom $
*/
#ifndef VDR_SPIDER_TABLEAU_H
#define VDR_SPIDER_TABLEAU_H
#include "spider.h"
-class Deck;
-class Card;
-class Pack;
-class Pile;
-typedef Array<Pile*> Piles;
-class FinalHeap;
-typedef Array<FinalHeap*> Finals;
-class History;
-/** --- class Tableau ------------------------------------------------------ **/
-
-class Tableau
+namespace Spider
{
-private:
- int dealCount;
- int cardsToOpen;
- Deck& deck;
+ class Deck;
+ class Card;
+ class Pack;
+ class Pile;
+ typedef Array<Pile*> Piles;
+ class FinalHeap;
+ typedef Array<FinalHeap*> Finals;
+ class History;
+
+
+ //--- class Spider::Tableau --------------------------------------------------
+
+ class Tableau
+ {
+ private:
+ int dealCount;
+ int cardsToOpen;
+ Deck& deck;
+
+ public:
+ Pack* pack;
+ Piles piles;
+ Finals finals;
+ Pile* selected;
+ bool changed;
+ History* history;
-public:
- Pack* pack;
- Piles piles;
- Finals finals;
- Pile* selected;
- bool changed;
- History* history;
+ /** Constructor */
+ Tableau(Deck& deck, int pileCount, int finalCount, int deals);
- /** Constructor */
- Tableau(Deck& deck, int pileCount, int finalCount, int deals);
+ /** Destructor */
+ ~Tableau();
- /** Destructor */
- ~Tableau();
+ /** Current count of deals */
+ int deals();
- /** Current count of deals */
- int deals();
+ /** Current count of points */
+ int points();
- /** Current count of points */
- int points();
+ /** Is no pile empty? */
+ bool noPileEmpty();
- /** Is no pile empty? */
- bool noPileEmpty();
+ /** Matches all cards in all piles? */
+ bool allCardsMatches();
- /** Matches all cards in all piles? */
- bool allCardsMatches();
+ /** Is the game over? */
+ bool gameOver();
- /** Is the game over? */
- bool gameOver();
+ /** Select p-th pile by selecting up to max matching cards on its end */
+ void select(int p, int max = 0);
- /** Select p-th pile by selecting up to max matching cards on its end */
- void select(int p, int max = 0);
+ /** Unselect the selected pile */
+ void unselect();
- /** Unselect the selected pile */
- void unselect();
+ /** Move cards from selected pile to p-th pile */
+ void move(int p);
- /** Move cards from selected pile to p-th pile */
- void move(int p);
+ /** Search move from p-th pile to the next left pile, return destination */
+ int autoMoveLeft(int p);
- /** Search move from p-th pile to the next left pile, return destination */
- int autoMoveLeft(int p);
+ /** Search move from p-th pile to the next right pile, return destination */
+ int autoMoveRight(int p);
- /** Search move from p-th pile to the next right pile, return destination */
- int autoMoveRight(int p);
+ /** Search best move from p-th pile, return destination */
+ int autoMove(int p);
- /** Search best move from p-th pile, return destination */
- int autoMove(int p);
+ /** Deal one row */
+ void deal();
- /** Deal one row */
- void deal();
+ /** Remove one suit of cards from selected pile to the final heaps */
+ void remove();
- /** Remove one suit of cards from selected pile to the final heaps */
- void remove();
+ /** Go one move backward in the history */
+ void backward();
- /** Go one move backward in the history */
- void backward();
+ /** Go one move forward in the history */
+ void forward();
+ };
- /** Go one move forward in the history */
- void forward();
-};
+} // namespace Spider
#endif // VDR_SPIDER_TABLEAU_H