?? 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;
}
}
// 發(fā)一手牌
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 + -