📄 cgroup.cpp
字号:
//**************************************************************************************
//
// Copyright @2006 - 2007, All Rights Reserved.
//
// Filename: CGroup.h
//
// Author: Yin Zhou
//
// Created: 04/07/2008
//
// Purpose: Implemenation of CGroup class
// 关于一副牌类的具体实现
//
//***************************************************************************************
#include "stdafx.h"
#include <time.h>
#include "CGroup.h"
CGroup::CGroup(int shuffleTimes) {
int i, j;
int count = 0;
for (i=COLOR_SPADE;i<=COLOR_DIAMOND;i++) {
for (j=2;j<=14;j++) {
m_card[count].SetColor((COLOR_TYPE) i);
m_card[count].SetNumber(j);
count ++;
}
}
m_seed = time(NULL);
srand(m_seed);
m_shuffleTimes = shuffleTimes;
m_current = 0;
}
CGroup::~CGroup() {
}
// 洗牌
void CGroup::Shuffle(int times) {
int r;
int p1, p2, i;
CCard card;
for (i=0;i<times;i++) {
r = rand();
p1 = r%CARD_TOTAL_NUMBER;
r = rand();
p2 = r%CARD_TOTAL_NUMBER;
card = m_card[p1];
m_card[p1] = m_card[p2];
m_card[p2] = card;
}
}
// 发一手牌
void CGroup::Dispatch(CSet * set) {
int i;
if (m_current == 0) {
Shuffle(m_shuffleTimes);
/*for (i=0;i<CARD_TOTAL_NUMBER;i++) {
printf(" m_card[%d] color = %d, number = %d\n",
i, m_card[i].GetColor(), m_card[i].GetNumber());
}*/
}
//printf("m_current = %d\n", m_current);
for (i=0;i<CARD_NUMBER;i++) {
set->AddCard(&(m_card[m_current++]));
}
// 为下一次调用 准备好正确的 m_current = 0
if (m_current == CARD_TOTAL_NUMBER - 4) {
m_current = 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -