File: card.h

package info (click to toggle)
wxwidgets3.0 3.0.5.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 120,464 kB
  • sloc: cpp: 896,633; makefile: 52,303; ansic: 21,971; sh: 5,713; python: 2,940; xml: 1,534; perl: 264; javascript: 33
file content (73 lines) | stat: -rw-r--r-- 2,557 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/////////////////////////////////////////////////////////////////////////////
// Name:        card.h
// Purpose:     Forty Thieves patience game
// Author:      Chris Breeze
// Modified by:
// Created:     21/07/97
// Copyright:   (c) 1993-1998 Chris Breeze
// Licence:     wxWindows licence
//---------------------------------------------------------------------------
// Last modified: 22nd July 1998 - ported to wxWidgets 2.0
/////////////////////////////////////////////////////////////////////////////
//+-------------------------------------------------------------+
//| Description:                                                |
//| A class for drawing playing cards.                          |
//| InitCards() must be called before using the Card class,     |
//| otherwise the card bitmaps will not be loaded.              |
//| CloseCards() must be called before terminating the          |
//| program so that the bitmaps are deleted and the memory      |
//| given back to Windows.                                      |
//+-------------------------------------------------------------+
#ifndef _CARD_H_
#define _CARD_H_

// Constants
const int PackSize = 52;

#define CardHeight Card::GetHeight()
#define CardWidth  Card::GetWidth()

// Data types
enum Suit { clubs = 0, diamonds = 1, hearts = 2, spades = 3 };
enum SuitColour { red = 0, black = 1 };
enum WayUp { faceup, facedown };

//--------------------------------//
// A class defining a single card //
//--------------------------------//
class Card {
    friend class FortyApp;

    static double m_scale;
    static int m_width,m_height;

public:
    Card(int value, WayUp way_up = facedown);
    virtual ~Card(){};

    void Draw(wxDC& pDC, int x, int y);
    static void DrawNullCard(wxDC& pDC, int x, int y); // Draw card place-holder
    void Erase(wxDC& pDC, int x, int y);

    void TurnCard(WayUp way_up = faceup) { m_wayUp = way_up; }
    WayUp GetWayUp() const { return m_wayUp; }
    int GetPipValue() const { return m_pipValue; }
    Suit GetSuit() const { return m_suit; }
    SuitColour GetColour() const { return m_colour; }
    static void SetScale(double scale);
    static int GetHeight() { return m_height; };
    static int GetWidth() { return m_width; };
    static double GetScale() { return m_scale; };

private:
    Suit m_suit;
    int m_pipValue; // in the range 1 (Ace) to 13 (King)
    SuitColour m_colour; // red or black
    bool m_status;
    WayUp m_wayUp;

    static wxBitmap* m_symbolBmap;
    static wxBitmap* m_pictureBmap;
};

#endif // _CARD_H_