ReactOS  0.4.13-dev-99-g7e18b6d
CardStack Class Reference

#include <cardstack.h>

Collaboration diagram for CardStack:

Public Member Functions

 CardStack ()
 
void NewDeck ()
 
int NumCards () const
 
void Shuffle ()
 
void Clear ()
 
void Reverse ()
 
void Push (const Card card)
 
void Push (const CardStack &cardstack)
 
Card Pop ()
 
CardStack Pop (int items)
 
Card Top ()
 
CardStack Top (int items)
 
void Print ()
 
Card RemoveCard (size_t index)
 
void InsertCard (size_t index, Card card)
 
Cardoperator[] (size_t index)
 
const Cardoperator[] (size_t index) const
 
CardStackoperator+= (Card card)
 
CardStackoperator+= (CardStack &cs)
 
CardStack operator+ (Card card)
 
CardStack operator+ (CardStack &cs)
 

Private Member Functions

 CardStack (CardStack &copythis, size_t fromindex)
 

Private Attributes

Card cardlist [MAX_CARDSTACK_SIZE]
 
int nNumCards
 

Friends

class CardRegion
 

Detailed Description

Definition at line 6 of file cardstack.h.

Constructor & Destructor Documentation

◆ CardStack() [1/2]

CardStack::CardStack ( )
inline

Definition at line 11 of file cardstack.h.

11 : nNumCards(0) { }
int nNumCards
Definition: cardstack.h:48

Referenced by Pop(), and Top().

◆ CardStack() [2/2]

CardStack::CardStack ( CardStack copythis,
size_t  fromindex 
)
private

Definition at line 228 of file cardstack.cpp.

229 {
230  nNumCards = copythis.nNumCards - fromindex;
231 
232  for(int i = 0; i < nNumCards; i++)
233  cardlist[i] = copythis.cardlist[fromindex + i];
234 }
Card cardlist[MAX_CARDSTACK_SIZE]
Definition: cardstack.h:47
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
int nNumCards
Definition: cardstack.h:48

Member Function Documentation

◆ Clear()

void CardStack::Clear ( )

Definition at line 37 of file cardstack.cpp.

38 {
39  nNumCards = 0;
40 }
int nNumCards
Definition: cardstack.h:48

Referenced by CardRegion::Clear(), CreateSol(), DeckClickProc(), and NewGame().

◆ InsertCard()

void CardStack::InsertCard ( size_t  index,
Card  card 
)

Definition at line 192 of file cardstack.cpp.

193 {
195  return;
196 
197  if(index > (size_t)nNumCards)
198  return;
199 
200  if((size_t)nNumCards == index)
201  {
202  cardlist[nNumCards] = card;
203  nNumCards++;
204  return;
205  }
206 
207  //put index into reverse range..
208  index = nNumCards - index - 1;
209 
210  nNumCards++;
211 
212  //make room for the card
213  for(size_t i = nNumCards; i > index; i--)
214  {
215  cardlist[i] = cardlist[i - 1];
216  }
217 
218  cardlist[index] = card;
219 }
Card cardlist[MAX_CARDSTACK_SIZE]
Definition: cardstack.h:47
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
GLuint index
Definition: glext.h:6031
int nNumCards
Definition: cardstack.h:48
#define MAX_CARDSTACK_SIZE
Definition: cardstack.h:4
#define index(s, c)
Definition: various.h:29

◆ NewDeck()

void CardStack::NewDeck ( )

Definition at line 42 of file cardstack.cpp.

43 {
44  nNumCards = 52;
45 
46  for(int i = 0; i < 52; i++)
47  cardlist[i].nValue = i;
48 }
Card cardlist[MAX_CARDSTACK_SIZE]
Definition: cardstack.h:47
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
int nNumCards
Definition: cardstack.h:48

Referenced by CardRegion::NewDeck(), and NewGame().

◆ NumCards()

◆ operator+() [1/2]

Definition at line 112 of file cardstack.cpp.

113 {
114  CardStack poo = *this;
115  poo.Push(card);
116  return poo;
117 }
void Push(const Card card)
Definition: cardstack.cpp:83

◆ operator+() [2/2]

Definition at line 119 of file cardstack.cpp.

120 {
121  CardStack poo = *this;
122  poo.Push(cs);
123  return poo;
124 }
void Push(const Card card)
Definition: cardstack.cpp:83
uint32_t cs
Definition: isohybrid.c:75

◆ operator+=() [1/2]

Definition at line 100 of file cardstack.cpp.

101 {
102  Push(card);
103  return *this;
104 }
void Push(const Card card)
Definition: cardstack.cpp:83

◆ operator+=() [2/2]

Definition at line 106 of file cardstack.cpp.

107 {
108  Push(cs);
109  return *this;
110 }
void Push(const Card card)
Definition: cardstack.cpp:83
uint32_t cs
Definition: isohybrid.c:75

◆ operator[]() [1/2]

Definition at line 10 of file cardstack.cpp.

11 {
12  if(index >= (size_t)nNumCards) index = nNumCards - 1;
13  return cardlist[nNumCards - index - 1];
14 }
Card cardlist[MAX_CARDSTACK_SIZE]
Definition: cardstack.h:47
GLuint index
Definition: glext.h:6031
int nNumCards
Definition: cardstack.h:48

◆ operator[]() [2/2]

const Card & CardStack::operator[] ( size_t  index) const

Definition at line 16 of file cardstack.cpp.

17 {
18  if(index >= (size_t)nNumCards) index = nNumCards - 1;
19  return cardlist[nNumCards - index - 1];
20 }
Card cardlist[MAX_CARDSTACK_SIZE]
Definition: cardstack.h:47
GLuint index
Definition: glext.h:6031
int nNumCards
Definition: cardstack.h:48

◆ Pop() [1/2]

Card CardStack::Pop ( )

Definition at line 127 of file cardstack.cpp.

128 {
129  if(nNumCards > 0)
130  return cardlist[--nNumCards];
131  else
132  return 0;
133 }
Card cardlist[MAX_CARDSTACK_SIZE]
Definition: cardstack.h:47
int nNumCards
Definition: cardstack.h:48

Referenced by DeckClickProc(), CardRegion::MoveCard(), NewGame(), CardRegion::OnLButtonDown(), PileRemoveProc(), and CardRegion::Pop().

◆ Pop() [2/2]

CardStack CardStack::Pop ( int  items)

Definition at line 135 of file cardstack.cpp.

136 {
137  if(items <= nNumCards && nNumCards > 0)
138  {
139  CardStack cs(*this, nNumCards - items);
140 
141  nNumCards -= items;
142 
143  return cs;
144  }
145  else
146  {
147  return CardStack();
148  }
149 }
CardStack()
Definition: cardstack.h:11
uint32_t cs
Definition: isohybrid.c:75
int nNumCards
Definition: cardstack.h:48
static TCHAR * items[]
Definition: page1.c:45

◆ Print()

void CardStack::Print ( )

Definition at line 222 of file cardstack.cpp.

223 {
224 // for(int i = 0; i < nNumCards; i++)
225 // cout << cardlist[i].HiVal() << " ";
226 }

Referenced by DeckClickProc().

◆ Push() [1/2]

void CardStack::Push ( const Card  card)

Definition at line 83 of file cardstack.cpp.

84 {
86  cardlist[nNumCards++] = card;
87 }
Card cardlist[MAX_CARDSTACK_SIZE]
Definition: cardstack.h:47
int nNumCards
Definition: cardstack.h:48
#define MAX_CARDSTACK_SIZE
Definition: cardstack.h:4

Referenced by CreatePlayDeck(), DeckClickProc(), operator+(), operator+=(), CardRegion::PlayCard(), and CardRegion::Push().

◆ Push() [2/2]

void CardStack::Push ( const CardStack cardstack)

Definition at line 89 of file cardstack.cpp.

90 {
91  if(nNumCards + cardstack.nNumCards < MAX_CARDSTACK_SIZE)
92  {
93  int num = cardstack.NumCards();
94 
95  for(int i = 0; i < num; i++)
96  cardlist[nNumCards++] = cardstack.cardlist[i];
97  }
98 }
Card cardlist[MAX_CARDSTACK_SIZE]
Definition: cardstack.h:47
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
int nNumCards
Definition: cardstack.h:48
GLuint GLuint num
Definition: glext.h:9618
#define MAX_CARDSTACK_SIZE
Definition: cardstack.h:4
int NumCards() const
Definition: cardstack.h:14

◆ RemoveCard()

Card CardStack::RemoveCard ( size_t  index)

Definition at line 172 of file cardstack.cpp.

173 {
174  if(nNumCards == 0 || index >= (size_t)nNumCards)
175  return 0;
176 
177  //put index into reverse range..
178  index = nNumCards - index - 1;
179 
180  Card temp = cardlist[index];
181 
182  nNumCards--;
183 
184  for(size_t i = index; i < (size_t)nNumCards; i++)
185  {
186  cardlist[i] = cardlist[i+1];
187  }
188 
189  return temp;
190 }
Card cardlist[MAX_CARDSTACK_SIZE]
Definition: cardstack.h:47
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
GLuint index
Definition: glext.h:6031
int nNumCards
Definition: cardstack.h:48
__kernel_size_t size_t
Definition: linux.h:237
#define index(s, c)
Definition: various.h:29
Definition: card.h:27
static calc_node_t temp
Definition: rpn_ieee.c:38

Referenced by CardRegion::PlayCard().

◆ Reverse()

void CardStack::Reverse ( )

Definition at line 73 of file cardstack.cpp.

74 {
75  for(int i = 0; i < nNumCards / 2; i++)
76  {
77  Card temp = cardlist[i];
78  cardlist[i] = cardlist[nNumCards - i - 1];
79  cardlist[nNumCards - i - 1] = temp;
80  }
81 }
Card cardlist[MAX_CARDSTACK_SIZE]
Definition: cardstack.h:47
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
int nNumCards
Definition: cardstack.h:48
Definition: card.h:27
static calc_node_t temp
Definition: rpn_ieee.c:38

Referenced by DeckClickProc(), and CardRegion::Reverse().

◆ Shuffle()

void CardStack::Shuffle ( )

Definition at line 50 of file cardstack.cpp.

51 {
52  int src, dest;
53  Card temp;
54 
55  //shuffle 8 times..
56  for(int i = 0; i < 8; i++)
57  for(dest = nNumCards - 1; dest > 0; dest--)
58  {
59  //want to do this:
60  // bad: src = rand() % (dest + 1)
61  // good: src = rand() / (RAND_MAX / (dest+1) + 1)
62 
63  //positions from 0 to dest
64  src = rand() / (RAND_MAX / (dest+1) + 1);
65 
66  //swap the cards
67  temp = cardlist[src];
69  cardlist[dest] = temp;
70  }
71 }
Card cardlist[MAX_CARDSTACK_SIZE]
Definition: cardstack.h:47
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
_Check_return_ int __cdecl rand(void)
Definition: rand.c:10
int nNumCards
Definition: cardstack.h:48
GLenum src
Definition: glext.h:6340
#define RAND_MAX
Definition: stdlib.h:99
Definition: card.h:27
static calc_node_t temp
Definition: rpn_ieee.c:38
static char * dest
Definition: rtl.c:135

Referenced by NewGame(), and CardRegion::Shuffle().

◆ Top() [1/2]

Card CardStack::Top ( )

Definition at line 151 of file cardstack.cpp.

152 {
153  if(nNumCards > 0)
154  return cardlist[nNumCards - 1];
155  else
156  return 0;
157 }
Card cardlist[MAX_CARDSTACK_SIZE]
Definition: cardstack.h:47
int nNumCards
Definition: cardstack.h:48

Referenced by CardRegion::Top().

◆ Top() [2/2]

CardStack CardStack::Top ( int  items)

Definition at line 159 of file cardstack.cpp.

160 {
161  if(items <= nNumCards && nNumCards > 0)
162  {
163  return CardStack (*this, nNumCards - items);
164  }
165  else
166  {
167  return CardStack();
168  }
169 
170 }
CardStack()
Definition: cardstack.h:11
int nNumCards
Definition: cardstack.h:48
static TCHAR * items[]
Definition: page1.c:45

Friends And Related Function Documentation

◆ CardRegion

friend class CardRegion
friend

Definition at line 8 of file cardstack.h.

Member Data Documentation

◆ cardlist

◆ nNumCards

int CardStack::nNumCards
private

The documentation for this class was generated from the following files: