锄大地拆牌算法毕业设计.doc_第1页
锄大地拆牌算法毕业设计.doc_第2页
锄大地拆牌算法毕业设计.doc_第3页
锄大地拆牌算法毕业设计.doc_第4页
锄大地拆牌算法毕业设计.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业论文(设计)锄大地拆牌算法的分析与设计锄大地拆牌算法设计与实现【摘要】锄大地,中国人发明的扑克游戏,有富含哲理,变化多端,精彩激烈等特点。故有人说,锄大地甚至可以提升到与麻将并列的适合大众参与的国粹地步。麻将是各自为战,互相牵制,而锄大地是在相互配合中尽量求得最大的利益,且敌我关系转瞬即变,并不固定,这成为锄大地最大的魅力所在。本设计需要完成的算法设计有:洗牌与发牌算法、牌面的显示算法、用户出牌算法与合法判断算法、对牌局的评估算法、机器的出牌算法,而其中以拆牌算法为主,设计出一个好的拆牌算法对于锄大地机器人出牌至关重要。本设计是以Microsoft Visual C+ 2005为开发平台,通过c语言完成算法的开发。【关键词】锄大地;拆牌算法;Microsoft Visual C+ Big demolition and achieve brand algorithm designAbstract Big, Chinese invented poker game, there are rich in philosophy, be the most changeful, exciting features. So some people say, big can even to point and mahjong are suitable for mass participation of the quintessence of Chinese culture. Mahjong is a fight the enemy separately, mutual restraint, and dig the earth is in conjunction with each other to obtain the maximum benefit, and the relationship between ourselves and the enemy suddenly, is not fixed, it becomes the big biggest charm.本设计需要完成的算法设计有:洗牌与发牌算法、牌面的显示算法、用户出牌算法与合法判断算法、对牌局的评估算法、机器的出牌算法,而其中以拆牌算法为主,设计出一个好的拆牌算法对于锄大地机器人出牌至关重要。The design algorithm design is done: shuffle and licensing algorithm, the card display card, the user card algorithm algorithm and legal judgment algorithm, the evaluation algorithm, game machine, which removed the sign algorithm, design a good split algorithm for the big robot play crucial.本设计是以Microsoft Visual C+ 2005为开发平台,通过c语言完成算法的开发。The design is based on Microsoft Visual C+ 2005 as the development platform, using C language to complete the algorithm development.Keywords Hoe;Remove the card algorithm;Microsoft Visual C+1-2目 录1前言21.1选题背景及意义21.2国内外现状和发展趋势21.3研究内容31.3.1具体研究内容/设计内容31.3.2重要解决问题31.4相关背景简介41.4.1锄大地游戏规则介绍41.4.2人工智能的介绍61.4.3人工智能在游戏中的应用61.4.4Microsoft Visual C+介绍72算法设计92.1游戏整体流程92.2重要变量及参数介绍112.3各部分详细算法设计122.3.1洗牌与发牌算法122.3.2牌面显示设计152.3.3用户出牌、牌型判断与合法性检测算法162.3.4拆牌算法182.3.5局面评估与出牌算法273锄大地拆牌算法分析293.1拆牌效果分析293.1.1拆牌例子293.1.2结果分析316.结论32参考文献33致 谢341 前言1.1 选题背景及意义随着科技的进步,计算机已经普及每个家庭,而计算机游戏也随之越来越多,越来越丰富。网络游戏、单机游戏等休闲游戏让众多人喜欢,而锄大地也受广大群众的追捧。锄大地,中国人发明的扑克游戏,有富含哲理,变化多端,精彩激烈等特点。故有人说,锄大地甚至可以提升到与麻将并列的适合大众参与的国粹地步。麻将是各自为战,互相牵制,而锄大地是在相互配合中尽量求得最大的利益,且敌我关系转瞬即变,并不固定,这成为锄大地最大的魅力所在。锄大地一共使用扑克牌52张(去掉大小王),通常四人游戏,每家13张牌。游戏目标是最早出完所有的牌。每局胜利者是第一个出完全部牌的游戏者。计分的情况下,最后的胜利者为在有人超过100分后的最少得分者。随着移动终端普及,小游戏正在逐渐地受到追捧。锄大地单机游戏可以方便地为用户在工作学习之余放松心情,享受桥牌类游戏带来的乐趣。另外也通过这个小游戏的制作,让自己在大学四年所学的知识与实际的社会需求相融合,为未来的工作需要奠定基础。1.2 国内外现状和发展趋势随着电脑软硬件技术和互联网的飞速发展,电脑游戏也突飞猛进,成功游戏不断涌现。比较成熟的大型游戏主要有:反恐精英(CS)、星际争霸、魔兽争霸2、FIFA2003、帝国时代、FIFA2004等等。这时也出现了越来越多的网络小游戏,休闲类项目包括网络围棋、中国象棋、四国军棋、桥牌、麻将、拱猪、拖拉机、锄大地、斗地主等。各式各样的游戏给我们的生活带来了无限的乐趣,但同时也出现了一些问题。虽然计算机电脑已经普及绝大多数家庭,但有些偏远的地方却无法正常的接受到网络信号,这就给一部分人带来了有电脑不能上网休闲的烦恼。因此,一些单机游戏更受到了人们的追捧。本设计的目的是用简单的C语言设计出一个锄大地的小游戏,使用者只要运行该程序,就可以轻松的玩游戏了。1.3 研究内容1.3.1 具体研究内容/设计内容本设计主要是针对算法方面的研究,开发平台是:Microsoft Visual C+ 2005,以C语言为开发语言编写完成。锄大地游戏一直以来都受到广大人们的喜欢,基于移动电子设备的发展,为了更方便人们开展锄大地游戏,单机版的锄大地游戏必然会受到欢迎。对于锄大地游戏的单机版来说,最重要的就是锄大地游戏的拆牌算法,我们在玩牌的时候,在刚拿到牌时,一般我们都会对手中的牌进行一个分类,也就是拆牌。并且希望尽量能按自己的对一份牌最开始的分类来进行出牌,而我所做的设计就是尽量模拟一般玩家拆牌的思维。除了拆牌算法,还有一些其他方面的设计也是比较重要的:1、洗牌与发牌算法2、牌面的显示算法3、用户出牌算法与合法判断算法4、对牌局的评估算法5、机器的出牌算法1.3.2 重要解决问题1、关于洗牌与发牌。需要尽量高效地完成并且使每一个玩家所拿到的牌的概率是一样才行。2、设计出友好的界面。界面的友好是否用户评价一个软件、系统优劣的重要方面。虽然这个设计是以算法为主的,界面上的要求低一点,但还是要尽量使使用者方便快捷地进行操作。3、拆牌算法的设计,这是最重要的一个环节,拆牌的准确率直接关系到整个设计的成败,为了得到较高的准确率,要不断地试验对算法进行修改,是计算机的模拟程度尽量达到一般玩家的水平。4、虽然本设计不以出牌算法的设计为主,但出牌的设计也是本设计的一个比较重要的部分,让计算机可以根据局势的情况来评估要出是么样的牌,要不要进一步地进行拆牌。1.4 相关背景简介1.4.1 锄大地游戏规则介绍1、牌型锄大地的出牌牌型有以下一些:单张:任何一张单牌。 一对:二张牌点相同的牌。 三个:三张牌点相同的牌。顺:连续五张牌点相邻的牌,如 “34567”、“910JQK”、“10JQKA”、“A2345” 等,顺的张数必须是 5 张, A 既可在顺的最后,也可在顺的最前,但不能在顺的中间,如 “JQKA2” 不是顺。 杂顺:花色不全部相同的牌称为杂顺。同花顺:每张牌的花色都相同的顺称为同花顺。同花五:由相同花色的五张牌组成,但不是顺,称 “同花五 ”。 如红桃 “278JK”。三个带一对:例如:“99955”。 四个带单张:例如:“99995”。 2、牌的大小(1) 只有张数相同的牌可以比较大小,例如: 对9 对8 ,J 10 ,但不能比较: 对9 和 J。(2) 单张牌的大小:首先比较牌点,如果牌点相同再比较牌的花色。牌点从大到小依次为: 2 A K Q J 10 9 8 7 6 5 4 3 。花色从大到小的顺序为:黑桃、红心、梅花、方块。比如:黑桃9 红心9 梅花9 方块9 黑桃8 。 (3) 其它牌型在进行比较时都取其中一张最大的牌按单张的方式进行比较:三个带一对时,取三个中的最大一张。四个带单张时,取四个中最大的一张进行比较。顺子中最大的一张进行比较,注意 2 在顺子中作为小牌,如: 6 5 4 3 2 顺子比较时,只取 6 进行比较; A 在和 K 相连作顺时,按大牌进行比较,在和 2 连在一起作顺时,作小牌处理。 (4)五张牌的牌型中,同花顺最大,四个带单张第二,三个带一对第三,同花五第四,杂顺最小。也就是说,上家出了杂顺后,你的任何一副同花五、三个带一对、四个带单张或同花顺都比杂顺大。 3、出牌规则 (1)第一副牌都由拿方块 3 的一方首先出牌,而且第一轮出牌中必须包含方块 3 。以后每副牌都由上副牌获胜者 ( 第一个打完手中牌的一方 ) 出牌,并且第一轮牌不需要包含方块 3 。(2)首家可以出任何一种合法的牌型。(3)首家出牌后,下家所出的牌张数必须和首家的相同,同时比首家所出的牌大;下家也可以 Pass 表示不出牌,由再下一家继续出牌。(4)如果连续三家都 Pass ,这时最后出牌的一家可以重新打出新的牌型。 (5)如此继续,直到一人手中的牌全部打光为止 。4、计算分数 在其中一方手中的牌全部出完后开始计分 (1)先根据每家手中剩余的牌张数计算牌分,假设剩余牌张数为 n : n8 时,牌分为 n8n10 时,牌分为 2n 10n13 时,牌分为 3n n=13 时,牌分为 4n(2)如果游戏结束时,手上还有 8 张或更多的牌,同时有黑桃 2 ,牌分还要再乘以 2 。(3)中途退出扣200分。1.4.2 人工智能的介绍锄大地单机游戏是人工智能在游戏方面的一个应用。关于人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等,研究成果已经广泛地用于了各行各业,当然也包括游戏。我们玩电脑游戏,主要是为了得到一种放松、一种享受、以及在现实生活中无法得到的一种快感。这需要电脑游戏能制作得符合玩家的口味,游戏的主题能够吸引玩家深入,游戏的规则和结果能够使得玩家满意。而在这一切中,人工智能技术扮演了相当重要的角色。1.4.3 人工智能在游戏中的应用人工智能在游戏中的目标主要有五个:一是为玩家提供适合的挑战;二是使玩家处于亢奋状态;三是提供不可预知性结果;四是帮助完成游戏的故事情节;五是创造一个生动的世界。这个生动的世界可以是类似现实生活中的世界,也可以是与现实世界完全不同的世界。但不管何种世界都要求有一整套能够自圆其说的游戏规则。 在游戏制作过程中,实现人工智能的关键主要有:虚拟现实与拟人化、动画效果与机器角色场景感知、机器角色的机器学习和进化、玩家与机器角色之间的平衡性、人工愚蠢技术、确定性人工智能技术与非确定性人工智能技术的互补。 人工智能在游戏中应用的技术非常之多,如:有限状态自动机(Finite State Machines)、模糊逻辑(Fuzzy Logic)、产生式系统(production system)、脚本设计(Scripting)、基于规则的人工智能和系统(Rules-based AI and Systems)、贝叶斯推论(Bayesian Inference)和非确定性贝叶斯网络(Bayesian Networks for Uncertainty Decisions)、人工生命(Artificial life)、决策树(Decision Tree)、专家系统(Expert system)、神经网络(Neural Networks)、遗传算法(Genetic Algorithms)等。限于文章篇幅,下面只具体介绍这八种较容易理解的技术:有限状态自动机、模糊逻辑、产生式系统、决策树、人工生命、专家系统、神经网络和遗传算法。1.4.4 Microsoft Visual C+介绍Microsoft Visual C+是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。它以拥有“语法高亮”,IntelliSense(自动完成功能)以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。这些特征明显缩短程式编辑、编译及连结花费的时间,在大型软件计划上尤其显著。Visual Studio 是微软公司推出的开发环境,Visual Studio 可以用来创建 Windows 平台下的 Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office插件。Visual Studio是目前最流行的Windows平台应用程序开发环境。Visual Studio 2008 包括各种增强功能,例如可视化设计器(使用 .NET Framework 3.5 加速开发)、对 Web 开发工具的大量改进,以及能够加速开发和处理所有类型数据的语言增强功能。Visual Studio 2008 为开发人员提供了所有相关的工具和框架支持,帮助创建引人注目的、令人印象深刻并支持 AJAX 的 Web应用程序。开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为中心的 Web应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览器内运行并完全访问 ASP NET应用程序服务和 Microsoft 平台。2 算法设计2.1 游戏整体流程根据锄大地游戏的游戏规则,可以得知游戏的流程为:发完牌后,手中有方块3的玩家获得出牌权,之后是按顺时针方向顺序出牌,可以选择pass,即放弃出牌,当其他三方玩家都选择放弃出牌时,重新获得出牌优先权。直至一家手中的牌全部出完,游戏结束,并且计分。下面是流程图: 图1 锄大地游戏整体流程2.2 重要变量及参数介绍1、 一张牌的结构体,要用到52张牌,所以要定义大小为52的该结构体数组来表示。以1-13的整形数值依次表示A-K的牌值;以0、1、2、3的整形数值依次表示方块、梅花、红桃、黑桃;以0-51的整形数值依次表示方块3-黑桃2的权值。typedef struct int figure;/牌值int colour;/花色int weight;/权值Node;2、 牌型结构体,以1-8的整形数值来表示各种牌型,由于所有牌型中,最多包含的牌数不超过5张,所以设置指向纸牌的指针数组大小为5就可以了,用来指向该牌型中的牌在原来一副牌中的位置。单张:牌型为1,权值为该牌的权值;一对:牌型为2,权值为该对中权值最大的牌的权值;三张:牌型为3,权值为该三张中权值最大的牌的权值;杂顺:牌型为4,权值为该杂顺中权值最大的牌的权值;五同花:牌型为5,权值为该五同花中权值最大的牌的权值;三带二:牌型为6,权值为该三带二中的三张中权值最大的牌的权值;四带一:牌型为7,权值为该四带一中的四张牌中权值最大的牌的权值;同花顺:牌型为8,权值为该同花顺中权值最大的牌的权值。另外,顺为A2345,权值不能为牌2的权值,而要用牌5的权值;顺为23456,也一样,不能用牌2的权值,而要用到牌6的权值。typedef structint type;/牌型int weight;/权值int cardlink5;/指向纸牌的指针Cardtype;3、 设置全局变量count4,用来记录当前玩家手中牌的数量,初始为12,当其中一个值为0时,游戏结束。int count4;/玩家手中牌的数量4、 位置记录参数sait,用来记录各个玩家所在的位置,主要是配合countsait来使用,在牌面评估中也起到比较大作用。0、1、2、3分别表示机器玩家1、机器玩家2、机器玩家3、用户玩家。int sait;2.3 各部分详细算法设计2.3.1 洗牌与发牌算法1、 算法思路:第一种:定义一个拥有52个元素的一维数组赋值为-1。然后随机生成0-52之间的数,然后判断生成的数是否在数组中已存在,不存在则存入数组,已存在则重新生成,直到52个数全部出现为止。第二种:也可以这样,比如,定义一个拥有52个元素的一维数组,依次赋值为0-51,然后随机生成两个0-51的数字,把这两个位置的数字互换。这样做比较多的次数之后,也就形成乱序的了,这个效率也不是特别高,但是比第一种要好。第三种:定义一个拥有52个元素的一维数组,依次赋值为0-51, 随机52次,每次随机出一个数字,和第i个位置也即是当前位置的数字交换,这样就比较不错了。考虑到效率跟公平性的问题,我所采用的第三种的算法来实现的。2、 算法的流程图 2 洗牌、发牌算法流程图3、 代码的实现for(i=0;i52;i+)/对52张牌进行初始化赋值pokerifigure=i/4+1;pokeri.colour=i%4;if(i=7)/A与2的权值设为44至51pokeri.weight=i+44;elsepokeri.weight=i-8;/方块3的权值设为最小,后面的牌依次增大for(i=0;i4;i+)counti=13;for(i=0;i52;i+)/洗牌k=rand()%(52);card.colour=pokerk.colour;card.figure=pokerk.figure;card.weight=pokerk.weight;pokerk.colour=pokeri.colour;pokerk.figure=pokeri.figure;pokerk.weight=pokeri.weight;pokeri.colour=card.colour;pokeri.figure=card.figure;pokeri.weight=card.weight;for(i=0;i13;i+)/发牌mplayer1i.colour=pokeri.colour;mplayer1i.figure=pokeri.figure;mplayer1i.weight=pokeri.weight;for(i=39;i52;i+)playeri-39.colour=pokeri.colour;playeri-39.figure=pokeri.figure;playeri-39.weight=pokeri.weight;2.3.2 牌面显示设计1、 设计思路手中有方块3的玩家率先出牌,每一次的出牌显示一次出牌的情况,主要的显示内容有所出牌、是否选择pass、玩家手中牌的数量、用户玩家所持有的牌、获胜情况。2、 设计流程图 3 牌面显示流程图2.3.3 用户出牌、牌型判断与合法性检测算法1、 算法的思路轮到用户玩家出牌时,玩家根据自己手中牌选择是否出牌,选择pass则直接跳过,不做其他处理,如果是出牌,用户玩家需要选择要出的牌的序号进行出牌。在用户玩家选择出牌后,机器根据用户玩家所出的牌进行牌型的判断、合法性的检测,具体算法如下:(1) 如果用户所出的牌数为1张,课直接判断为单张。如果是2两张,则要判断这两张牌的牌值是否相等,如相等,课判断为对。如果是三张牌,要判断这三张牌的牌值是否相等,如相等,可判断为三张。(2) 关键是用户所出的牌为5张的情况,可能有杂顺、五同花、同花顺、三带二、四带一这五中情况。首先根据权值进行排序并判断这五张牌中是否存在牌值相等的两张牌,如果有则可能是三带二、四带一或不合法,如果第1张牌与第4张牌相等或第2张牌与第5张牌相等,并且有一个对子,则可以判断为三带二;如果是第1张牌与第3张牌相等或第3张牌与第5牌相等,则可以判断为四带一;不符合以上两种情况为不合法。假如不存在牌值相等的两张牌,则可能的情况为杂顺、五同花、同花顺,判断这五张牌的牌值是否为依次增大的,如果是,那么可以判断为杂顺或同花顺,如果花色一样,可以判断为同花顺,否则为杂顺;如果这五张牌的牌值不是依次增大的,可能的情况为五同花或者是不合法,只有花色相同时才能判断为五同花,否则不合法。(3) 判断所出的牌大小是否合法,如果是优先出牌,那么只要牌型合法就可以出牌,如果是跟牌,则一定要比上家大的牌才合法,主要是通过比较上家牌型与用户出牌牌型来实现的。2、 算法的流程(1) 牌型判断图 4 牌型判断流程图(2) 判断所出的牌大小是否合法图 5 牌值合法判断流程图2.3.4 拆牌算法1、 算法的思路(1) 首先是要寻找牌中是否存在同花顺,寻找存在大于5张具有相同花色的牌,判断这花色中的牌是否能构成至少为5顺的牌,如果这个顺大于5张牌,则选择含单张最多的顺,以小顺优先,前提是顺中的牌不可以有能够够成三个对而其中存在一个对大于A对的情况,如果存在,则放弃。满足以上条件的牌将能构成同花顺,将其存起,并在原来的牌中删除。图6 同花顺拆牌流程图 (2) 寻找四带一的牌型,搜索手中有无四张牌值相同的牌,如果存在,先将其存放起来,并将这些牌在原来的在原有的位置中删除。(在搜索四带一、三带二、五同花、杂顺、三张、对的时候都不将牌值为2的牌考虑进去)图7 四带一拆牌流程图(3) 寻找三带二,如果存在三张相同牌值的牌,并且至少有一个小于A对的对子存在,则将这个三连张先收起,并将其在原来的位置删除,如果存在两个以上的三连张,而对子却少于三连张的个数,那么首先要满足大的三连张成为三带二。图8 三带二拆牌流程图(4) 接下来是五同花的寻找,在剩余的牌中寻找具有相同花色的牌,如果存5张以上,则满足五同花的基本要求,如果有两张牌值为2的牌,牌值为2的牌也要考虑进来。如果同花色的牌大于5张,则选取含单张最多且牌值小的组合作为五同花。判断提取出的五同花中的牌不可以有能够够成三个对而其中存在一个对大于K对的情况,如果存在,则放弃。另外,如果剩余的牌与已经保存的三连张可构成两个五同花,则可将这三连张拆出构成五同花,如果是牌值为K以上的三连张,则能够构成一个五同花就可以将此三连张拆成一个对跟一个五同花的情况。图 9 五同花拆牌流程图(5) 杂顺的寻找,采用与同花顺类似的寻找方法,对剩余的牌进行排序后,寻找大于5张的连顺,当牌值为2的牌大于两张时,也加入考虑,选取单张个数最多且牌值最小的组合作为杂顺,如果提取出的杂顺中的牌存在构成三个对而其中存在一个对大于Q对的情况,则放弃。图 10 杂顺拆牌流程图(6) 三张的搜索,在剩余的牌中找到三张牌值一样的就满足。图 11 三张拆牌流程图(7) 对子的搜索,如果找出的对子小于A对并在已搜索出的牌型中存在三连张,则可以构成三带二的牌型。假如剩余的对子小于J对,要联合牌值为2的牌和已搜索出的三连张判断是否可以构成五同花。图 12 对子拆牌流程图(8) 剩余的牌都作为单张处理,如果牌值为2的牌只有一张,并存在5张以上牌值不是2的单,要联合牌值为2的牌判断是否可以构成五同花,如果可以的话,就将其构成五同花,让后再将剩余的牌确定为单张。图 13 单张拆牌流程图2.3.5 局面评估与出牌算法1、 算法的思路主要通过自己手中牌的手数、大牌数(将三带二、四带一、同花顺、对A、单张2认为是大牌)、对家手中牌的数量、合作情况来评估局面情况。根据评估出来的局面情况进行出牌。(1) 有利情况下:如果是优先出牌,先出单张的、小的牌;如果是跟牌,则按照原本拆好的牌型选择最小可出的牌出牌;没有课出的牌则pass。(2) 在不利的情况下:如果获得优先出牌权,先出小的五张牌,尽量选择多牌的牌型出牌;如果是跟牌,如果原本拆好的牌中有能跟的牌型,则直接跟牌;如果没有,在已经拆好的牌型中可以将三张拆成一对、三张跟一对可以构成三带二来打,如果还是没有可出的牌,可以在整副牌中搜索是否有可出的牌,如果有则出牌,没有则只能选择pass。(3) 出完牌后重新对牌进行拆牌操作。3 锄大地拆牌算法分析3.1 拆牌效果分析3.1.1 拆牌例子1、 例1,拆牌结果为:一个五同花4 6 7 Q K;一对K;一对A;单张2 2 9 J图14 例12、 例2,拆牌结果:一个杂顺4 5 6 7 8;一个K三连张;对A;单张2 2 J图15 例23、 例3,拆牌结果:一个三个4带5;对6 对J;单张7 8 9 K图16 例34、 例4,拆牌结果:杂顺6 7 8 9 10;对J 对Q 对A;单张4 6图17 例45、 例5,拆牌结果:杂顺5 6 7 8 9、杂顺10 J Q ;单张 图18 例53.1.2 结果分析从拆牌的效果来看,基本上符合一般玩家的拆牌思路,但在面对比较复杂的牌面的情况下还是没有办法得到比较好的结果。由于本文着重于拆牌的算法,未在出牌方面做更多的研究,要取得更好的效果必须要结合出牌算法来完成,在出牌的过程中动态地进行拆牌,希望能在之后的时间完善此算法。6. 结论我们的毕业设计是从大四上学期开始的,在老师的悉心帮助下,我终于完成了这次毕业设计项目和论文。在整个过程中,我发现了自己的很多不足同时也学到了很多的东西,在此,我要真诚的感谢我们的指导老师和同学。通过这次做毕业设计锄大地拆牌算法与设计,我深深地明白了算法的重要性。这次的毕业设计把我们这三年所学的理论知识与实际联系在了一起,让我更加的注重理论知识的学习。以前我们做过的学期项目或是平时的练习项目都比这次的项目要简单些,但

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论