网站门户怎么建设,公司网站开发项目外包方案,建设工程网站tc,网站开发介绍文章目录程序简介程序的实现程序中使用到的类Card#xff1a;一副扑克牌。CardGroup#xff1a;Player#xff1a;玩家Game#xff1a;游戏主程序Scene#xff1a;游戏界面人工智能部分实现分析选牌牌型分析手牌并拆分成有效牌型出牌/跟牌分析拆牌原则#xff1a;程序简介…
文章目录程序简介程序的实现程序中使用到的类Card一副扑克牌。CardGroupPlayer玩家Game游戏主程序Scene游戏界面人工智能部分实现分析选牌牌型分析手牌并拆分成有效牌型出牌/跟牌分析拆牌原则程序简介
程序的实现
程序中使用到的类
Card一副扑克牌。
接口洗牌、抹牌及剩余牌数。CardGroup
一组牌型如单张、对子、顺子、炸弹等等。
属性包含牌序号集合、对应牌的权值集合、该组牌的类型、权值、牌的数量
接口添加/删除序号牌、重置结构内属性、静态序号到权值转换。Player玩家
属性手牌集合、手牌牌型集合、选牌集合、出牌集合、是否不出牌、玩家总分数
接口包括分析叫地主分数、分析手牌、选牌、分析是否出牌或跟牌等。Game游戏主程序
属性玩家、地主方、当前出牌方、本局基本分、倍率、地主专属牌集合等
接口相关控制游戏进行函数及没个步骤通知界面更新。Scene游戏界面
包含游戏界面元素及游戏主界面缓冲去生成及窗口绘制等功能。人工智能部分实现
分析选牌牌型
先分析选牌是否为王炸如不是则进行第二步找出选牌中相同权值的最大数量根据最大数量判断是否为相应的有效牌型。
分析手牌并拆分成有效牌型
判断牌型集合是否为空不为空就不需要分析直接返回否则进行第二步由当前玩家手牌0-53格式生成权值牌集合3-17格式先拆分出权值牌集合中的基本牌型分析的顺序为王炸 → 炸弹 → 单顺 → 双顺 → 三顺、三条 → 一对 → 单张然后又基本牌型尝试组合成更复杂的牌型三带一、四带二、飞机等。
出牌/跟牌分析 是否需要重新分析手牌分析完成后进行第2步 直接出牌最后出牌方为自己 如手牌数为2则先出王炸、炸弹、数量最多、权值最大的牌如下家为我方其手牌数为一则出最小单牌如下家为敌方其手牌数为一尽量不出单牌或出最大单牌其他正常出牌顺序为单牌(A以上的牌尽量不直接出)→对子→双顺→单顺→三条、三带一、飞机 跟友方牌最后出牌方为我方 手牌把数≤2应出对应牌或炸弹否则过牌上家为地主且未跟牌过牌有对应牌且权值小于14则跟炸弹不跟 跟敌方牌最后出牌方为敌方 有对应牌就跟没有就拆再着用炸弹否则就过牌 拆牌原则 单牌时1.拆单顺数量大于5的2.拆三条3.拆对对子时1.拆三条2.拆三顺数量大于3的单顺1.拆更长单顺三条或三带一1.拆三顺先判断数量大于3的飞机1.拆三顺数量大、权值更大的拆牌后一定要清空牌型集合