斗地主算法的设计与实现
面向对象实现斗地主程序的核心算法,包括洗牌、发牌、判断牌型、比较牌的大小、游戏规则等。
小雷FansUnion
懂商业的技术合伙人。个人微信:FansUnion
微信订阅号:XiaoLeiFansUnion。
展开
-
斗地主算法的设计与实现(六)--项目源码和说明
本篇将给出斗地主算法的源码,介绍斗地主这个项目的一些基本情况。下载地址:http://download.csdn.net/detail/fansunion/6387589特别说明:斗地主项目的主要实现了,斗地主中的洗牌、发牌、判断牌型、排序等一系列算法,但这并不是一个完整的项目。界面操作部分,功能很有限,仅供参考,有兴趣的同学自行完善。原创 2013-10-12 12:08:50 · 15159 阅读 · 32 评论 -
斗地主算法的设计与实现(五)--洗牌和发牌
本篇简要介绍如何洗牌和发牌。这2个算法都很简单,有兴趣的同学可以写得更好一点。关键点说明a.洗牌算法的思路就是,构造54张牌,打乱牌N次,这个算法可能不够随机。b.发牌算法的思路就是,从洗好的牌中,按规律发给3个玩家,比如1好玩家就取第1、4、7等17张牌。c.3个玩家,谁取到id为1的这张牌,谁就是“地主”。原创 2013-10-12 11:29:11 · 10377 阅读 · 6 评论 -
斗地主算法的设计与实现(四)--对牌进行排序
在判断牌的类型的时候,比如判断387654的牌型的时候,需要首先对牌进行排序,这样才能判断这6张牌是个顺子。本篇简要介绍下 如何对一手牌或很多牌进行排序。在前几篇定义牌Card的属性的时候,有个grade字段,这个字段就是用来对牌进行比较和排序的。比如大王的grade是17,小王的grade是16,这样大王>小王,其它单张牌的比较是类似的。原创 2013-10-12 08:59:59 · 8597 阅读 · 9 评论 -
斗地主算法的设计与实现(三)--如何比较两手牌的大小
本篇主要讲解斗地主中如何比较两手牌的大小。牌型比较火箭最大;炸弹次之;再次是一般牌型(单牌、对牌、三张牌、三带一、单顺、双顺、三顺、飞机带翅膀、四带二)一般牌型:只有牌型且张数相同的牌才可按牌点数比较大小。其中三带一、飞机带翅膀、四带二组合牌型,比较其相同张数最多的牌点数大小。原创 2013-10-11 10:13:58 · 11870 阅读 · 6 评论 -
斗地主算法的设计与实现(二)--如何判断一手牌的类型(单,对子,三不带,三带一,四代二等)
牌的类型共有10种: 1. 单 2.对子 3.3不带 4.3带1 5.炸弹 6.顺子 7.4带2 8.连队 9.飞机 10.对王单牌:任意一张单牌。对牌:任意两张点数相同的牌。三张:任意三张点数相同的牌,如888。三带一:点数相同的三张牌+一张单牌或一对牌。如:333+6 或 444+99。单顺:任意五张或五张以上点数相连的牌,如:45678或78910JQK。不包括 2和双王。原创 2013-10-10 12:24:22 · 22469 阅读 · 24 评论 -
斗地主算法的设计与实现(一)--项目介绍&如何定义和构造一张牌
大学期间,我在别人的基础上,写了一个简易的斗地主程序。主要实现了面向对象设计,洗牌、发牌、判断牌型、比较牌的大小、游戏规则等算法。通过这个斗地主小项目的练习,提高了我的面向对象设计能力,加深了对算法的理解。最近把这些设计和算法分享给大家,过些天会上传斗地主程序的源码。原创 2013-10-09 17:23:02 · 19592 阅读 · 18 评论