麻将游戏算法深入解析及实现代码
发布时间:2021-01-01 01:48:59 所属栏目:经验 来源:网络整理
导读:麻将游戏算法深入解析及实现代码 这两天为了工具箱的完善,整理了这些年引擎开发的一些资料,无意中发现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; } (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读