麻将游戏算法深入理会及实当代码
发布时间:2020-12-31 21:47:41 所属栏目:创业 来源:网络整理
导读:麻将游戏算法深入理会及实当代码 这两天为了器材箱的完美,清算了这些年引擎开拓的一些资料,有时中发明06年写的一个麻将算法,编译运行了一下,照旧有点意思的,拿出来清算一下分享给各人。 麻将是一种各人最喜欢的娱乐勾当之一,信托全部人都有打仗过。我
对应CPP: #include "CMJManage.h" //结构函数 CMJManage::CMJManage() { m_HZPaiNum = 0; } //析构函数 CMJManage::~CMJManage() { } //初始化牌 void CMJManage::InitPai(int p_HZPaiNum) { m_HZPaiNum = p_HZPaiNum; m_MJVec.clear(); //中发白 for(UINT i = 1 ; i <= 3 ; i++) { stPAI t_Pai; t_Pai.m_Type = 0; t_Pai.m_Value = i; m_MJVec.push_back(t_Pai); m_MJVec.push_back(t_Pai); m_MJVec.push_back(t_Pai); m_MJVec.push_back(t_Pai); } //东南西北 for(UINT i = 1 ; i <= 4 ; i++) { stPAI t_Pai; t_Pai.m_Type = 1; t_Pai.m_Value = i; m_MJVec.push_back(t_Pai); m_MJVec.push_back(t_Pai); m_MJVec.push_back(t_Pai); m_MJVec.push_back(t_Pai); } //万 for(UINT i = 1 ; i <= 9 ; i++) { stPAI t_Pai; t_Pai.m_Type = 2; t_Pai.m_Value = i; m_MJVec.push_back(t_Pai); m_MJVec.push_back(t_Pai); m_MJVec.push_back(t_Pai); m_MJVec.push_back(t_Pai); } //条 for(UINT i = 1 ; i <= 9 ; i++) { stPAI t_Pai; t_Pai.m_Type = 3; t_Pai.m_Value = i; m_MJVec.push_back(t_Pai); m_MJVec.push_back(t_Pai); m_MJVec.push_back(t_Pai); m_MJVec.push_back(t_Pai); } //饼 for(UINT i = 1 ; i <= 9 ; i++) { stPAI t_Pai; t_Pai.m_Type = 4; t_Pai.m_Value = i; m_MJVec.push_back(t_Pai); m_MJVec.push_back(t_Pai); m_MJVec.push_back(t_Pai); m_MJVec.push_back(t_Pai); } XiPai(); } //洗牌 void CMJManage::XiPai() { srand( GetTickCount() ); random_shuffle(m_MJVec.begin(),m_MJVec.end()); } //起牌 stPAIEx CMJManage::GetAPai() { //假如全部牌都起完了 stPAIEx t_Pai; t_Pai.m_NewPai.m_Type = m_MJVec.back().m_Type; t_Pai.m_NewPai.m_Value = m_MJVec.back().m_Value; t_Pai.m_PaiNum = m_MJVec.size()-1; if(t_Pai.m_PaiNum ==m_HZPaiNum) { t_Pai.m_IsHZ = true; } else { t_Pai.m_IsHZ = false; } //扔去一个 m_MJVec.pop_back(); return t_Pai; } (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |