/***********************-*-C++-*-******** klondike.cpp implements a patience card game Copyright (C) 1995 Paul Olav Tvete * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose and without fee is hereby granted, * provided that the above copyright notice appear in all copies and that * both that copyright notice and this permission notice appear in * supporting documentation. * * This file is provided AS IS with no warranties of any kind. The author * shall have no liability with respect to the infringement of copyrights, * trade secrets or any patents by this file or any part thereof. In no * event will the author be liable for any lost revenue or profits or * other special, indirect and consequential damages. // // 7 positions, alternating red and black // ****************************************/ #ifndef P_KLONDIKE #define P_KLONDIKE #include "dealer.h" class KlondikePile; class Klondike : public Dealer { Q_OBJECT public: Klondike( bool easy, TDEMainWindow* parent=0, const char* name=0); public: virtual void restart(); virtual bool startAutoDrop(); void redeal(); // put pile back into deck void deal(); void deal3(); // move up to 3 cards from deck to pile virtual bool cardClicked(Card *); virtual void pileClicked(Pile *c); virtual void getHints(); virtual Card *demoNewCards(); bool tryToDrop(Card *t); virtual bool isGameLost() const; private: bool EasyRules; bool redealt; Pile* play[7]; Pile* target[4]; KlondikePile *pile; Deck* deck; Card::Rank target_tops[4]; bool noLongerNeeded(Card::Rank r, Card::Suit s ); }; #endif