斗地主牌型判断实现(一)
#ifndef GAME_LOGIC_HEAD_FILE
#define GAME_LOGIC_HEAD_FILE#pragma once#include "Stdafx.h"////排序类型
#define ST_ORDER 1 //大小排序
#define ST_COUNT 2 //数目排序
#define ST_CUSTOM 3 //自定排序////分析结构
struct tagAnalyseResult
{BYTE cbBlockCount[4]; //扑克数目BYTE cbCardData[4][MAX_COUNT]; //扑克数据
};//出牌结果
struct tagOutCardResult
{BYTE cbCardCount; //扑克数目BYTE cbResultCard[MAX_COUNT]; //结果扑克
};//分布信息
struct tagDistributing
{BYTE cbCardCount; //扑克数目BYTE cbDistributing[15][6]; //分布信息
};//搜索结果
struct tagSearchCardResult
{BYTE cbSearchCount; //结果数目BYTE cbCardCount[MAX_COUNT]; //扑克数目BYTE cbResultCard[MAX_COUNT][MAX_COUNT]; //结果扑克
};////游戏逻辑类
class CGameLogic
{//变量定义
protected:static const BYTE m_cbCardData[FULL_COUNT]; //扑克数据//函数定义
public://构造函数CGameLogic();//析构函数virtual ~CGameLogic();//类型函数
public://获取类型BYTE GetCardType(const BYTE cbCardData[], BYTE cbCardCount);//获取数值BYTE GetCardValue(BYTE cbCardData) { return cbCardData&MASK_VALUE; }//获取花色BYTE GetCardColor(BYTE cbCardData) { return cbCardData&MASK_COLOR; }//控制函数
public://混乱扑克VOID RandCardList(BYTE cbCardBuffer[], BYTE cbBufferCount);//排列扑克VOID SortCardList(BYTE cbCardData[], BYTE cbCardCount, BYTE cbSortType);//删除扑克bool RemoveCardList(const BYTE cbRemoveCard[], BYTE cbRemoveCount, BYTE cbCardData[], BYTE cbCardCount);//逻辑函数
public://逻辑数值BYTE GetCardLogicValue(BYTE cbCardData);//对比扑克bool CompareCard(const BYTE cbFirstCard[], const BYTE cbNextCard[], BYTE cbFirstCount, BYTE cbNextCount);//内部函数
public://构造扑克BYTE MakeCardData(BYTE cbValueIndex, BYTE cbColorIndex);//分析扑克VOID AnalysebCardData(const BYTE cbCardData[], BYTE cbCardCount, tagAnalyseResult & AnalyseResult);//分析分布VOID AnalysebDistributing(const BYTE cbCardData[], BYTE cbCardCount, tagDistributing & Distributing);
};//#endif
斗地主牌型判断实现(一)相关推荐
- 斗地主含赖子的牌型判断算法
目标 打出n张牌(可能含有赖子),需要判断这n张牌能组成什么牌型(对子.顺子.飞机-). 整体思路:假设我们已经提前那种牌作为癞子. 整体思路 1.找出n张牌中的赖子,假设有m个赖子 2.计算出这剩余 ...
- 斗地主AI算法——第六章の牌型判断
本章实现了上一章提到的检查当前是否只是一手牌函数ins_SurCardsType /* 检查剩余的牌是否只是一手牌是: 返回手牌类型数据 不是:返回错误类型(cgERROR) */ CardGroup ...
- 算法题 牌型判断 Java
题目 德州扑克的花型由 N 张扑克牌组成 0<N<8,可以组成的牌型按照价值从高到低来区分分别为: 皇家同花顺:最高为 Ace (一点)的同花顺. 如 A K Q J 10 的同花顺 同花 ...
- 德州扑克实践之二------判断牌型
实践二------牌型判断 起始 现在到了,第二步,上一步我们已经做好了发牌模块,有了手牌,就需要判断牌型了,平时打扑克时,我们需要使用大脑进行判断自己手里的牌属于那种类型的,现在我们需要通过程序来进 ...
- 纸牌游戏的牌型分析和出牌策略
前段时间遇到这个问题,想了一些,也搜了一些,发现网上也只是零星讲了一些笼统思想,复杂的我也没看懂,便自己去尝试写了一些代码来处理这个问题.还是先说明一下适用场景,只是针对一副牌去掉大小王,规则是常见的 ...
- 棋牌游戏开发之地主算法判断牌型
棋牌游戏开发咨询 QQ:325131039 棋牌游戏开发咨询交流群: 490287966 由于近年来网络棋牌游戏的火爆导致个各个地区的特色棋牌游戏进入开发的红火时期,也有越来越多的团队个人开始研究棋牌 ...
- python斗地主出牌算法_斗地主之用蚁群算法整理牌型:如何进行牌力估计
我们在前面讲到过,各牌手的牌力估计就是我们在用蚁群算法构造最优牌型时的启发性知识.启发性知识其实就是我们利用自己的经验对事物做出的判优性评估,或者说就是对事物价值的判断. 原则上,应用蚁群算法需要用到 ...
- 斗地主之用蚁群算法整理牌型-如何进行牌力估计
我们在前面讲到过,各牌手的牌力估计就是我们在用蚁群算法构造最优牌型时的启发性知识.启发性知识其实就是我们利用自己的经验对事物做出的判优性评估,或者说就是对事物价值的判断. 原则上,应用蚁群算法需要用到 ...
- 斗地主检测牌型(玩家)
BRANDSTATUS JudgeVOwn()//检测牌型是否合法可出{List<Card> vTemp = SelectedCard;//选择的牌Sort(vTemp,false);// ...
- 2015年第六届蓝桥杯 - 省赛 - C/C++大学A组 - F. 牌型种数
牌型种数 小明被劫持到X赌城,被迫与其他3人玩牌. 一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张. 这时,小明脑子里突然冒出一个问题: 如果不考虑花色,只考虑点数,也不考虑自己得 ...
最新文章
- GNN教程:第六篇Spectral算法细节详解!
- 天冷了,大家如果有往年的不穿的衣服别扔,寄给需要的人好吗?
- 网易创新企业大会倒计时,云信将发布新一代音视频技术架构
- 倒叙输出 php,php foreach正序倒序输出示例代码
- 前端学习(2365):图片的预览
- 广数系统u盘支持什么格式_u盘装系统,u盘要格式化成什么格式
- RabbitMQ Tutorials 3 - Publish/Subscribe 发布/订阅
- win10多合一原版系统_手把手教你制作官方原版的WIN10系统安装盘
- java网络编程基础——TCP网络编程三
- lcd12864历程C语言程序,基于51单片机的LCD12864程序设计
- UNIX网络编程卷1:套接字联网API(第3版).pdf
- MaxScript 例子 渲染
- 进销存mysql数据库_进销存管理系统数据库设计
- 软件工程师必备的简历模板
- excel两个表格数据对比_用vlookup把两个或者多个excel表格,整合到一个表格中
- cache stm32h7_【STM32H7教程】第24章 STM32H7的Cache解读(非常重要)
- 【C基础】11 指针与数组
- 线性代数考研笔记(四)
- 一个简单的集成电路运算放大器的计算和multisim的仿真
- 比较山海鲸数据可视化和Data MAX,谁赢了?
热门文章
- 阿铭Linux_网站维护学习笔记20190412
- PJSIP添加G729编码
- HFSS印刷偶极子天线(3)
- 七彩虹断剑C.A320M-K PRO V14安装PCI-E X4转m.2转接卡,并用m.2固态作为系统盘
- CAN协议要点及车辆CAN协议破解
- 计算机Excel设置透视图,excel共享表格数据-EXCEL在共享模式中,如何让数据透视表能够自动刷新?...
- 觉得小鹤双拼鹤形超级难的看一下-by老随风-2015-05-22
- 【FinE】期权定价理论(1)
- 火星坐标转换 php,百度经纬度和火星坐标转换
- Filter中获取传递参数(解决post请求参数问题)