1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: card.h 3 // Purpose: Forty Thieves patience game 4 // Author: Chris Breeze 5 // Modified by: 6 // Created: 21/07/97 7 // RCS-ID: $Id: card.h 29660 2004-10-05 15:38:40Z ABX $ 8 // Copyright: (c) 1993-1998 Chris Breeze 9 // Licence: wxWindows licence 10 //--------------------------------------------------------------------------- 11 // Last modified: 22nd July 1998 - ported to wxWidgets 2.0 12 ///////////////////////////////////////////////////////////////////////////// 13 //+-------------------------------------------------------------+ 14 //| Description: | 15 //| A class for drawing playing cards. | 16 //| InitCards() must be called before using the Card class, | 17 //| otherwise the card bitmaps will not be loaded. | 18 //| CloseCards() must be called before terminating the | 19 //| program so that the bitmaps are deleted and the memory | 20 //| given back to Windows. | 21 //+-------------------------------------------------------------+ 22 #ifndef _CARD_H_ 23 #define _CARD_H_ 24 25 // Constants 26 const int PackSize = 52; 27 28 #define CardHeight Card::GetHeight() 29 #define CardWidth Card::GetWidth() 30 31 // Data types 32 enum Suit { clubs = 0, diamonds = 1, hearts = 2, spades = 3 }; 33 enum SuitColour { red = 0, black = 1 }; 34 enum WayUp { faceup, facedown }; 35 36 //--------------------------------// 37 // A class defining a single card // 38 //--------------------------------// 39 class Card { 40 friend class FortyApp; 41 42 static double m_scale; 43 static int m_width,m_height; 44 45 public: 46 Card(int value, WayUp way_up = facedown); ~Card()47 virtual ~Card(){}; 48 49 void Draw(wxDC& pDC, int x, int y); 50 static void DrawNullCard(wxDC& pDC, int x, int y); // Draw card place-holder 51 void Erase(wxDC& pDC, int x, int y); 52 53 void TurnCard(WayUp way_up = faceup) { m_wayUp = way_up; } GetWayUp()54 WayUp GetWayUp() const { return m_wayUp; } GetPipValue()55 int GetPipValue() const { return m_pipValue; } GetSuit()56 Suit GetSuit() const { return m_suit; } GetColour()57 SuitColour GetColour() const { return m_colour; } 58 static void SetScale(double scale); GetHeight()59 static int GetHeight() { return m_height; }; GetWidth()60 static int GetWidth() { return m_width; }; GetScale()61 static double GetScale() { return m_scale; }; 62 63 private: 64 Suit m_suit; 65 int m_pipValue; // in the range 1 (Ace) to 13 (King) 66 SuitColour m_colour; // red or black 67 bool m_status; 68 WayUp m_wayUp; 69 70 static wxBitmap* m_symbolBmap; 71 static wxBitmap* m_pictureBmap; 72 }; 73 74 #endif // _CARD_H_ 75