拖拉机总结.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
拖拉机总结

拖拉机总结 一 总体框架: 使用了界面线程对游戏状态的变化进行及时的刷新显示,并同时接收鼠标在界面中针对亮牌/小手按钮的单击,以及在翻开的扑克牌窗口中的鼠标左/右键单/双击事件的接收。 游戏NewGame后,将创建一个游戏规则线程,不断的结合界面线程接收到的事件,进行相对的处理,实现游戏的正常运行。 应该要注意的是,有关于用户的亮牌请求,本程序中也使用创建新线程,然后调用相应处理函数进行处理的。 二 模块分布 1 对话框处理 负责了整体界面的显示,同时不仅为自己本身的按钮接受鼠标事件,还为自己的子窗口:牌窗口也接收对应的左/右键事件。 3 亮主状态处理 负责亮主状态的显示,其根据当前庄家为哪个玩家,且此时两对玩家打到几和当前的亮牌花色,选用不同的亮主背景,亮主状态,打几等位图构成该窗口的显示。 2 牌类处理 主要记载了单张牌的属性,和结合当前打几/亮主状态等对单张牌的属性进行修改。同时还对单击在其对应的窗口中的鼠标信息区分其为不同的点击操作,结合界面中小手按钮的状态决定是否调用SetOutCardsEvent()来设置出牌事件,还是单纯让牌进行点起/放下并调用CheckMyCards()对点起的牌合法性,由此设置小手按钮的状态。 4 游戏规则处理 (1)功能阐述:负责了在游戏运行中的洗牌、发牌(同时处理亮牌)、埋底牌,与之后的处理电脑玩家处出牌和用户出牌 (2)主要模块: a 处理亮主 OtherThreeTrump: 1先根据指定的亮牌花色,扫描当前玩家手中的牌,决定相对自己可以亮牌的数组 2,再结合在此时其他玩家(应该只能是用户玩家)可能亮的牌状态、类型决定是否能亮牌 3,可以亮牌则进行亮牌动作(用ShowTrumpCards进行处理),将刚亮的牌移动到指定位置,并将之前亮的牌放回到对应玩家手中,此时还是用了RemoveFromList结合发牌时的插入函数AddToList在显示界面上区分了定主、反自己和反别人(主要针对用户)。 4,再修改相关的亮牌变量/属性,同时更新亮牌窗口的显示和用户玩家的亮牌按钮休息,释放临界段,返回。 b 电脑玩家出牌/埋底OutMyCards 1,得到当前用户玩家立起的牌/准备出(埋底)的牌 2 设置手形按钮的使用状态和显示状态 3 如果没有埋底,则此时的记录的的立起牌数组则是用来埋底的,处理埋底后,在调用OutMyCards再次等待用户的出牌操作 4 如果已经埋底,则根据用户是否是当前的第一个出牌人,决定是否或如何保存相应的此轮出牌数据,如果用户是第一个出牌人 I则还要查看当前出牌否会形成强制出小(按单牌、对子、拖拉机的顺序检查),接着再出牌;而如果用户不是第一个出牌人 II则只需分析当前已经出牌的各个玩家出牌情况,将自己的出牌与当前最大出牌玩家出牌比较,决定接下来的最大出牌玩家,再出牌 c 检查用户所选牌的合法性CheckMyCards和SetOutCardsEvent 当鼠标在用户的牌窗口上使用左右键进行单双击时,将会根据鼠标的点击情况 结合当前小手按钮的状态判断是运行SetOutCardsEvent来设置出牌事件还是单纯的将对应的牌的立起状态该与对立的状态同时调用CheckMyCards对点起的牌进行合法性检查,据此设置小手按钮的状态。 d 第一个出牌玩家是电脑玩家时的处理 OtherThreeFirstOut 1 准备工作: (1)重新设置一下关于对应各种玩家的数据 (2)得到当前玩家的对于当前亮主存在的副牌花色和各种花色牌情况 (3)声明相关当前玩家手中牌和准备出的牌的变量得到当前敌家的主牌数是否全为0 2 确定出牌: a 先出对方都有(确定对方有该副牌,如果是拖拉机则不用再检查;或其主不够杀),而自己绝大的副牌(前六轮有对应的限制) b 根据当前拥有的副牌、主牌、大主牌数还有自己是否有主对而敌家的主牌数是否为0等等决定是否应该吊对应的主对 c 再出敌方都有的(是拖拉机则不再检查敌方),而自己大于敌方相对最大牌的副牌 d 再出对家没有,而敌方都有的副牌(单张) e 如果当前玩家的对子数大于0,而敌家的主牌数不全为0时吊主对。此时不再管敌家的主情况! f 出有大对副牌,不管敌人还有没有 g 出其他副牌对 h 出对家没有的副牌 i 如果当前玩家的主牌数大于其副牌总数,且其主牌数大于等于5找最小的分常主0分单牌出,没有则在最小0分单主、5分单主、10分单主中选择最小的 j 找最小的单张副牌出 k 没有副牌了,按分数值从小到大的顺序查找是否有适合的单主吊单主 l 当前玩家即没有副牌也没有主单,则必然有主对 3 出

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档