上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 47 下一页

2018年6月12日

斗地主AI算法——第十三章の主动出牌(2)

摘要: 上一章我们已经搭好了出牌算法的基本框架,本章主要实现优先处理的三带、飞机等牌型。 首先定义一些基本变量: [cpp] view plain copy //暂存最佳的价值 HandCardValue BestHandCardValue; BestHandCardValue.NeedRound = 20 阅读全文

posted @ 2018-06-12 22:42 &大飞 阅读(243) 评论(0) 推荐(1)

斗地主AI算法——第十二章の主动出牌(1)

摘要: 本章开始,我们介绍主动出牌的算法,和被动出牌类似,我们第一步把主要架子搭起来。 首先清空出牌序列 [cpp] view plain copy clsHandCardData.ClearPutCardList(); [cpp] view plain copy [cpp] view plain copy 阅读全文

posted @ 2018-06-12 22:41 &大飞 阅读(937) 评论(0) 推荐(0)

斗地主AI算法——第十一章の被动出牌(5)

摘要: 本章是被动出牌的最后一章,截止目前,我们已经解决了大部分牌型。只剩下飞机和炸弹了。 飞机无疑是最复杂的类型,他等于顺子和三带的结合体,但又增加了很多难度。 根据上一章的算法,我们可以大概想到,若是带出去一张我就加一个循环,若是带出去两张我就加俩循环,但是这个飞机长度不一致,带出去的牌个数也就不一致, 阅读全文

posted @ 2018-06-12 22:40 &大飞 阅读(269) 评论(0) 推荐(0)

斗地主AI算法——第十章の被动出牌(4)

摘要: 上一章已经说明了单顺的实现方法,双顺、三不带顺牌型实现方法与单牌基本类似。改动的地方除了上一章说的枚举牌类型,出牌时value_nPutCardList的处理,回溯时value_aHandCardList和nHandCardCount的变化等几个方面,还有length设置的变化,因为双顺的lengt 阅读全文

posted @ 2018-06-12 22:39 &大飞 阅读(299) 评论(0) 推荐(0)

斗地主AI算法——第八章の被动出牌(2)

摘要: 上一章我们已经搭好了被动出牌的基本架子,本章我们主要说明一下被动出牌算法的基本步骤。 我把出牌逻辑分为四个阶段,也就是策略的优先级。分别是:【直接打光手牌】→【同类型牌压制】→【炸弹王炸压制】→【不出】 第一阶段【直接打光手牌】就是说如果我们可以一次性把手牌打出,那就不用考虑接下来价值之类的问题了, 阅读全文

posted @ 2018-06-12 22:38 &大飞 阅读(517) 评论(0) 推荐(0)

斗地主AI算法——第九章の被动出牌(3)

摘要: 上一章已经说明了被动出牌算法基本的出牌思路,且以单牌为例给出了具体的代码。 对牌、三不带牌型实现方法与单牌基本类似。改动的地方主要是枚举牌类型,出牌时value_nPutCardList的处理,回溯时value_aHandCardList和nHandCardCount的变化等几个方面。下面给出完整代 阅读全文

posted @ 2018-06-12 22:38 &大飞 阅读(287) 评论(0) 推荐(0)

斗地主AI算法——第七章の被动出牌(1)

摘要: 哎,之前扯了那么多蛋,终于讲出牌了! 本章开始讲被动出牌的逻辑算法。首先我们先把架子搭起来,被动出牌我们肯定是要知道场上目前打出的是什么牌型。 在第二章数据结构里我们定义过,游戏全局类里面有一个存放当前牌型结构的成员,即 [cpp] view plain copy //当前打出牌的类型数据,被动出牌 阅读全文

posted @ 2018-06-12 22:37 &大飞 阅读(537) 评论(0) 推荐(0)

斗地主AI算法——第六章の牌型判断

摘要: 本章实现了上一章提到的检查当前是否只是一手牌函数ins_SurCardsType [cpp] view plain copy /* 检查剩余的牌是否只是一手牌 是: 返回手牌类型数据 不是:返回错误类型(cgERROR) */ CardGroupData ins_SurCardsType(int a 阅读全文

posted @ 2018-06-12 22:36 &大飞 阅读(1500) 评论(0) 推荐(0)

斗地主AI算法——第五章の总值计算

摘要: 本章算是比较重点的一章,前一章已经对各个牌型做出了价值定义,本章主要实现计算手牌总价值模块函数。 根据之前的思路,我们设定一下输入输出: 输入:手牌数据类(主要用手牌个数nHandCardCount以及手牌状态数组clsHandCardData.value_aHandCardList) 输出:手牌价 阅读全文

posted @ 2018-06-12 22:35 &大飞 阅读(487) 评论(0) 推荐(0)

斗地主AI算法——第三章の数据处理

摘要: 上一章我们定义了基本的数据结构,相信大家看到手牌类里面那么多出牌序列时一定会比较愤慨。。。 其实一开始写的时候我也是觉得很脑残,不过后续开发证明了这样的结构还是可以的,因为只要我封装了一层数据转换,接下来所有的算法策略都只用到2个成员变量,状态数据及手牌数量。特别便于调试、管理。那么接下来就写出类成 阅读全文

posted @ 2018-06-12 22:34 &大飞 阅读(511) 评论(0) 推荐(0)

斗地主AI算法——第四章の权值定义

摘要: 第一章业务逻辑结尾部分我提到了权值的计算方法: ①每个单牌都有一个基础价值②组合牌型的整体价值与这个基础价值有关,但显然计算规则不完全一样。③整手牌可以分成若干个组合牌,但分法不唯一。 当时,我说了①和②可以直接定义,③需要迭代计算。所以本章的主要内容就是确定基础价值&组合牌型的价值定义 对于牌型权 阅读全文

posted @ 2018-06-12 22:34 &大飞 阅读(762) 评论(0) 推荐(0)

斗地主AI算法——第二章の数据结构

摘要: 上一章我们已经确立了基本的业务逻辑处理流程。从本章开始,我们便进入开发阶段。 首先就是明确我们都需要哪些数据,且它们以怎样的形式存储。 首先从上一章反复提到的手牌权值结构说起,也就是F()的返回值,他包含了两个成员,①手牌总价值②需要打几手牌。 [cpp] view plain copy //手牌权 阅读全文

posted @ 2018-06-12 22:33 &大飞 阅读(1001) 评论(0) 推荐(0)

斗地主AI算法——第一章の业务逻辑

摘要: 转眼间快到了五月,帝都的天气也变的非常梦幻。 时而酷暑炎热,时而狂风席卷。 而不管外面如何,我们也只能在办公室里茕茕无依的撸着代码,无可奈何的负着韶华。 世界是寂寞的,寂寞到不只是寂寞,而是死一般的寂寞。 或许AI就是因此而生吧,因为到了最后,能一直陪伴我们走下去的,或许也就只有程序了。 好吧不装逼 阅读全文

posted @ 2018-06-12 22:32 &大飞 阅读(898) 评论(0) 推荐(1)

lua——赢三张牌型处理相关算法(下)——牌型比较

摘要: 上文中我们已经实现了赢三张牌型的判定方法,同时我们也给出了一个枚举结构CardType。不难理解,若两组牌不是同一牌型的话,直接根据枚举的值进行比对就可以了。若是相同牌型还需要进行进一步的判断。所以我们暂且将比牌函数分为两个分支 [plain] view plain copy --@比牌接口函数 - 阅读全文

posted @ 2018-06-12 22:31 &大飞 阅读(352) 评论(0) 推荐(0)

lua——赢三张牌型处理相关算法(上)——牌值数据

摘要: 赢三张,我们东北管这个叫拖拉机。其他的几个名称是违规的。。 是一个简单粗暴的扑克牌(dubo)游戏。玩家每人三张牌,通过特定的牌型规则进行比大小。(押注什么的就不说了,具体详细规则请参考百度) 最近一直深陷在各种扑克玩法的牌型逻辑处理中,对比了一下,觉得赢三张应该算是比较简单的了,于是在这里写出一些 阅读全文

posted @ 2018-06-12 22:30 &大飞 阅读(633) 评论(0) 推荐(0)

lua——赢三张牌型处理相关算法(中)——牌型判定

摘要: 赢三张的牌型大题分为6种:单牌<对子<顺子<同花<同花顺<豹子。 [plain] view plain copy CardType = { UNDEFINE=0, --单牌 DUI_ZI =1, --对子 SHUN_ZI =2, --顺子 TONG_HUA=3, --同花 TONG_HUA_SHUN 阅读全文

posted @ 2018-06-12 22:30 &大飞 阅读(563) 评论(0) 推荐(0)

lua——牛牛牌型处理相关算法(下)——牌型比较

摘要: 牛牛的比牌规则为: 单牌比较: k>q>j>10>9>8>7>6>5>4>3>2>a。花色比较:黑桃>红桃>梅花>方块。牌型比较:无牛<有牛<牛牛<银牛<金牛<炸弹<五小牛。无牛牌型比较:取其中最大的一张牌比较大小,牌大的赢,大小相同比花色。有牛牌型比较:比牛数;牛数相同庄吃闲。牛牛牌型比较:取其中 阅读全文

posted @ 2018-06-12 22:29 &大飞 阅读(465) 评论(0) 推荐(0)

lua——牛牛牌型处理相关算法(中)——牌型判定

摘要: 牛牛的牌型按从小到大的顺序分为:无牛<有牛<牛牛<银牛<金牛<炸弹<五小牛。 算牛的方式为:先选出三张牌,若能组成十的整数倍 即为有牛,然后再看剩余两张牌除以十的余数。余几就是牛几,若正好也能整除十,即为牛牛。若无法选出三张组成十的整数倍的牌即为无牛。 银牛:1张10 加4张大于10的牌 金牛:5张 阅读全文

posted @ 2018-06-12 22:28 &大飞 阅读(3173) 评论(0) 推荐(0)

lua——牛牛牌型处理相关算法(上)——牌值数据

摘要: 这几天又做了牛牛游戏,在这里把相关算法写一下,与前几天写的赢三张的基本类似,所以大家也可以参考前几篇博客。 牛牛是一种简单却又非常有意思的棋牌游戏,主要是采用一副扑克牌其中的52张(除去大小王);第一局的庄家是随机产生,而后每局的庄家是上一轮游戏中的赢家,每局游戏系统自动洗牌后将5张牌均匀分给给各位 阅读全文

posted @ 2018-06-12 22:27 &大飞 阅读(1187) 评论(0) 推荐(0)

node.js——麻将算法(七)简易版麻将出牌AI2.0

摘要: *文本为上一篇博客http://blog.csdn.net/sm9sun/article/details/77898734的部分追加优化 上一篇博客已经实现了基本的出牌逻辑,大部分情况能够给出正确的策略选择,但经过了一些测试,仍发现了几个严重的问题: 问题一:当手牌无闲牌时,偶尔会将完整的一组牌拆开 阅读全文

posted @ 2018-06-12 22:26 &大飞 阅读(1199) 评论(0) 推荐(0)

上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 47 下一页

导航