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