棋牌平台架设教程之斗地主核心算法

首先,要弄清楚斗地主的牌型有哪些。可以参考QQ游戏给出的介绍,如下:

火箭:即双王(大王和小王),最大的牌。

炸弹:四张同数值牌(如四个 7 )。

单牌:单个牌(如红桃 5 )。

对牌:数值相同的两张牌(如梅花 4+ 方块 4 )。

三张牌:数值相同的三张牌(如三个 J )。

三带一:数值相同的三张牌 + 一张单牌或一对牌。例如: 333+6 或 444+99

单顺:五张或更多的连续单牌(如: 45678 或 78910JQK )。不包括 2 点和双王。

双顺:三对或更多的连续对牌(如: 334455 、 7788991010JJ )。不包括 2 点和双王。

三顺:二个或更多的连续三张牌(如: 333444 、 555666777888 )。不包括 2 点和双王。

飞机带翅膀:三顺+同数量的单牌(或同数量的对牌)。

如: 444555+79 或 333444555+7799JJ

四带二:四张牌+两手牌。(注意:四带二不是炸弹)。

如: 5555 + 3 + 8 或 4444 + 55 + 77 。

其次,设计CRobot类。

属性包括:原始牌(数) ,当前牌(数) ,前一轮出牌(数) ,当前出牌(数) ,当前分数 ,是否Pass ,等待时间。

方法包括:获得原始牌(数),牌面类型函数 ,排序函数 ,按牌面类型排序函数,出牌函数。

 最后,分牌算法。怎样模拟人工洗牌,这是一个难题。不过这难不倒我。

先将54张牌分成6 * 9的矩阵。

(1) 交换相邻的两行,1和2,3和4,5和6 交换。

(2) 交换相邻的两列,1和2,3和4,5和6,7和8 交换。

(3) 随即选择两行两列进行交换。

以上步骤重复50~100次。然后依次取第一个17张为玩家1的牌,第二个17张为玩家2的牌,第三个17张为玩家3的牌,剩余的3张为底    牌。OK!

具体的细节可以去这里棋牌源码架设 http://www.yasewl.com/

时间: 2024-10-11 19:37:26

棋牌平台架设教程之斗地主核心算法的相关文章

棋牌平台开发教程之斗地主常用算法

首先,要弄清楚斗地主的牌型有哪些.可以参考QQ游戏给出的介绍,如下: 火箭:即双王(大王和小王),最大的牌. 炸弹:四张同数值牌(如四个 7 ). 单牌:单个牌(如红桃 5 ). 对牌:数值相同的两张牌(如梅花 4+ 方块 4 ). 三张牌:数值相同的三张牌(如三个 J ). 三带一:数值相同的三张牌 + 一张单牌或一对牌.例如: 333+6 或 444+99 单顺:五张或更多的连续单牌(如: 45678 或 78910JQK ).不包括 2 点和双王. 双顺:三对或更多的连续对牌(如: 334

网狐SQL常用脚本自动添加子游戏信息棋牌平台架设教程

好久没写了,这次给大家说个用SQL脚本自动添加子游戏每次新装好环境后,增加子游戏是个重复的劳动,很麻烦,怎么能让他自动生成呢.下面我们就用SQL脚本来解决. 将下面代码写入记事本,保存成 " 游戏ID.SQL".USE QPPlatformDBGOTRUNCATE TABLE GameGameIteminsert into GameGameItem(GameID, GameName, SupporType, DataBaseAddr, DataBaseName, ServerVersi

棋牌平台制作教程之斗地主选牌算法

第一种:在牌的队列中只有自己被选中,会响应自己的可见区域,和前面一张牌的下部分可见区域. 这种是最简单的,自己被选中的时候,首先改变的正常的可见区域然后+选中之后的可见区域. 选中之后我们改变的就是牌的Y坐标:牌的Y坐标=牌的Y坐标-CheckHigh(选中之后的向上高度) 然后代入下面 NormalRect.setRect(牌的X坐标,牌的Y坐标,牌的X坐标+CardWidth,牌的Y坐标+CardHigh);//这个就是改变之后的正常可见区域. 下面是具体的4个点的坐标计算 (算法仅供参考!

棋牌平台搭建教程-德州扑克算法详解

德州扑克是一种技巧性非常强的扑克游戏,有一定的运气成分,但玩家之间主要还是要靠斗智力.耍手腕.动脑筋.其规则非常简单,比较容易掌握,但是要达到精通的境界却有一定的难度. 我们可以定义一个枚举来罗列出所有的牌型: [cpp] view plain copy //牌的类型枚举 enum CardTypeEnum { ctNoneCard = 0, ctHighCard,      //高牌 ctDouble_OneCard,//一对 ctDouble_TwoCard,//二对 ctThreeCard

棋牌平台开发教程之扎金花大小比较算法在php中的实现

PHP中扎金花比大小如何实现 在棋牌游戏中,不管是现实的还是线上的,扎金花无疑是最热门棋牌游戏之一,鄙人从小就酷爱扎金花,机缘巧合后面从事了IT行业,话不多说,直接进去正题吧. 扎金花两副牌的比较规则就不说了,注明一下是顺子的时候 : JQK < A23 < QKA 下面是个人一点建议,供大家参考!(有哪里不对的欢迎指教 棋牌平台开发: www.yasewl.com) 思路:扎金花 1. 随机生成两幅牌,每副牌结构为 复制代码 代码如下:array( array('Spade','K'), a

源码架设教程之麻将AI算法与数据结构棋牌

麻将ID构架 用一维数组PAICAPTION(143)来记录每张牌的ID和文字信息,数组内容为文字描述,下标用作ID(0-143,共144张牌) 1.胡牌判断基本构架 用一维数组来记录各个牌型的数量,例如 int PAI[38] = { 0, 1,1,1,0,1,1,1,0,0,    // PAI[ 1- 9]  壹万-玖万的个数 0, 0,0,0,0,0,3,0,0,0,    // PAI[11-19]  壹铜-玖铜的个数 0, 0,0,0,0,0,0,0,0,0,    // PAI[2

棋牌高防服务器架设教程

棋牌高防服务器架设教程q8803582 一个多人在线的棋牌类网络游戏的项目临近尾声,我参与了该项目的整个设计流程,并且完成了90%的核心代码.关于这个项目,有很多地方值得聊一聊.本系列不打算把这个项目将得多么详细规范,那是设计文档应该描述的,我打算只说说一些值得注意的地方.这个项目的一个特别之处是,客户端是手机,用户通过移动网络与服务器通信.和PC相比,手机的处理能力极弱,而且网络流量费用昂贵.因为除了要考虑普通网络游戏的一些问题之外,这两点也需要在设计中充分考虑.首先是开发语言的选择,由于服务

h5熟人棋牌系统架设平台服务器架构设计分析

h5熟人棋牌系统架设(aqiulian.com/h5),QQ咨询212303635模仿COM组件接口模式,利用面向对象思想多态性polymorphism,调用方保存着被调用方的基础接口指针(interface or sink钩子)(Pure Virtual Function),调用方直接调用接口指针内声明的纯虚方法,而此纯虚函数的具体逻辑由该接口的派生类实现. 示意图: 基于事件驱动的数据处理模型 在系统功能设计中,针对网络事件SocketEvent.数据库事件DatabaseEvent.定时器

新版皇冠体育平台开发源码网站搭建环境架设教程

新版皇冠体育平台开发源码搭建Q:2947702644网站环境架设教程[游戏特色]程序源码下载参数说明:运行环境:php5.2+mysql源码类别:(体育赛事)现金网系统界面语言:三种语言版本支持:PC/WAP网页版编程语言:PHP 一个网站需要程序,域名,空间.这本是三个独立产品,如何把他们关联起来,形成我们可以正常访问网站呢?下面就来讲讲如何在iis上,搭建网站.以下实例是在window 2008 server上安装iis 7.0,搭建.net网站. 方法/步骤 打开iis,如图是iis的全局