• 大小: 13.61M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-29
  • 语言: 其他
  • 标签: 其他  

资源简介

doudizhu_shffule_src.zip

资源截图

代码片段和文件信息

#include “GameUtil.h“
#include 
#include   

void CGameUtil:: ShuffleData (long* cbCardBuffer long dataCount SHUFFLETYPE shuffleType/* = ST_NORMAL*/)
{
ShuffleImpl1 (cbCardBuffer dataCount);
}

void CGameUtil:: ShuffleImpl1 (long* cbCardBuffer long dataCount)
{
std::vector testV;
    for (long i = 0; i < dataCount; i++)
    {
        testV.push_back(i);
    }
    
    std::random_device rd;
    std::mt19937 g(rd());
    std::shuffle(testV.begin() testV.end() g);
    
    for (long i = 0; i < dataCount; i++)
    {
        cbCardBuffer[i] = testV[i];
    }
}

void CGameUtil::Deal
{
/*
arr [0] -- 给玩家0发的牌
arr [1] -- 给玩家1发的牌
arr [2] -- 给玩家2发的牌
arr [3] -- 底牌
*/
long arr[4] [TOTAL_CUSTOMER_CARDS] = {0};

CRandomGenerator rg;
std::mt19937::result_type seed = time(0);
auto dice_rand = std::bind(std::uniform_int_distribution(5 12) std::mt19937(seed));

int firstCount = dice_rand ();
assert(firstCount >= 5 && firstCount <= 12);
long index = 0;
long client = 0;
for (index=0; index {
if (index >= TOTAL_PlayerS*firstCount)
{
break;
}

client = index/firstCount;
arr[client][index%firstCount] = m_data [index];
}

for (long j=0; j<3; j++)
{
arr[3][j] = m_data [index];
index++;
}

client = 0;
long dataIndex = 0;

for (long nextIndex = index; nextIndex {
for (client = 0; client < TOTAL_PlayerS; client++)
{
arr[client][firstCount + dataIndex] = m_data [nextIndex++];
}

dataIndex++;
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件    14948498  2015-05-13 15:07  iLandlord.apk
     文件        1638  2015-05-13 13:43  GameUtil.cpp
     文件         223  2015-05-13 13:41  GameUtil.h

评论

共有 条评论