麻将出牌时检测孤立的牌
2017-08-21 15:37
316 查看
麻将机器人出牌时,肯定要选择弃一张孤立的牌。
那检查孤张自然是必须的
获得间隔2个空位不连续的单牌
这个函数可以检查不连续的麻将牌。
再做一些简单的循环就可以检查出所有的孤张。
根据权重的划分,再去除孤张中,将、刻的选项,通过一些算法确定要打出的牌型等等。随便啦,这都是你们的自由。
这个函数直接抽出来的,可能不能直接使用,需要稍微阅读理解一下,以后再给他填写文字说明。
有问题,我们可以再探讨。
那检查孤张自然是必须的
获得间隔2个空位不连续的单牌
// 从_indexBegin开始检索 // BYTE is unsigned char // 例如牌型[1 222 5 88] 取出 5 和 8 int SRMahjong::getIntervalTwo(int _indexBegin) const { for (int i = _indexBegin / 9; i < 3; ++i) { const int& INDEX_BEGIN = (i * 9 > _indexBegin) ? i * 9 : _indexBegin; const int& INDEX_END = i * 9 + 9; for (int index_begin = INDEX_BEGIN; index_begin < INDEX_END; ++index_begin) { // 没有牌 或者 牌在指定的范围之前 都选择跳过 if (cardIndex_[index_begin] == 0) continue; const int& arg1 = index_begin - 1, &arg2 = index_begin - 2; const int& arg3 = index_begin + 1, &arg4 = index_begin + 2; // 判断相邻 if ((arg1 >= INDEX_BEGIN && cardIndex_[arg1] > 0) || (arg2 >= INDEX_BEGIN && cardIndex_[arg2] > 0) || (arg3 < INDEX_END && cardIndex_[arg3] > 0) || (arg4 < INDEX_END && cardIndex_[arg4] > 0)) { continue; } // 不连续的牌 return index_begin; } } return -1; }
这个函数可以检查不连续的麻将牌。
再做一些简单的循环就可以检查出所有的孤张。
根据权重的划分,再去除孤张中,将、刻的选项,通过一些算法确定要打出的牌型等等。随便啦,这都是你们的自由。
这个函数直接抽出来的,可能不能直接使用,需要稍微阅读理解一下,以后再给他填写文字说明。
// 比如说这样的简单调用 // 获得所有可供打出的不连续单张 int index; std::vector<int> vec_index; for (index = 0; (index = getIntervalOne(index)) != 0;) { vec_index.push_back(index); } if (!vec_index.empty()) { int i = rand() % vec_index.size(); int temp_index = vec_index.at(i); // 遍历检查幺九牌型 for (auto x : vec_index) { const int& temp = x % 9; if (temp <= 1 || temp >= 7) { temp_index = x; break; } } *_out_card = SRCardMagic::switchToCardData(index); break; }
有问题,我们可以再探讨。
相关文章推荐
- node.js——麻将算法(六)简易版麻将出牌AI1.0
- 检测四川麻将是否胡牌算法的实现
- 离群点(孤立点)检测
- 麻将客户端出牌动作
- unity麻将出牌后重新布置牌的位置
- 异常检测概览——孤立森林 效果是最好的
- 离群点(孤立点、异常值)检测方法
- C++带赖子的麻将听牌检测算法实现
- SQL Server 孤立用户检测与处理
- 麻将Ai的出牌逻辑
- cocos2d-x 给函数接口生命周期添加检测函数,用于调试程序时检测错误。
- 使用python开发敏感词检测过滤系统
- symbian中如何检测编辑框的当前输入法类型
- 基于HSV色彩空间变换的阴影检测算法——MATLAB实现
- 图像局部特征点检测算法综述【修正排版】
- USB OTG ID 检测原理
- OpenCV4Android学习之图像基本特征检测
- 基于Overfeat的图片分类、定位、检测
- 汇编语言第二章节检测2-2
- javascript之博客前端之事件绑定以及浏览器检测