网站大量收购独家精品文档,联系QQ:2885784924

数据结构与算法课设-跑得快2.docxVIP

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

PAGE \* MERGEFORMAT1 程序包含的功能 洗牌、发牌、在界面显示出玩家的牌、实现基本游戏规则、能够判定胜利条件、能够自由选择是否需要“再来一局”、记录胜利场次、出错牌时提示。 二、程序分析 (1)、发牌和洗牌,初始化时假定都是从新牌开始,即按S、H、D、C每种花色从1~13点排列,分配到52张牌,然后调用随机函数srand和rand进行洗牌,然后分发到4家。该模块中需要包含初始化函数void initial( )、洗牌函数void flush( )和发牌函数void issue( ),发牌后按照点数大小排列各家手中的牌,排序函数可调用qsort(),但先要用convert()转换把自然的点数转换成实际的点数大小. (2)、玩牌,游戏开始时首先由北家开始,轮到某家出牌时,首先根据上家所出牌的组合,程序将根据规则自动判断该家手中是否有可压上家的出牌组合,如果存在,则提示各种可能的出牌组合,并由玩家选择其中之一出牌,否则,轮换到下家。当所有其他下家均不能压住上家出牌时,如果上家所有牌均已发出,则本回合游戏结束,统计其他玩家手中的牌张数并继续下回合游戏,否则由上家继续出牌。 此处,需要一系列函数来确定能压上家出牌的各种可能的组合,并输出到屏幕。其基本格式为,包括findSingle(p_type *p,c_type *buf)、findBomb(p_type *p,c_type *buf)、findStraightFlush(p_type *p,c_type *buf)、findFlush(p_type *p,c_type *buf)、findTernary(p_type *p,c_type *buf)、findTwins(p_type *p,c_type *buf),分别表示单张、炸弹、同花顺、顺、三同和对的组合判别,它们均具有相同的返回类型bool。 玩牌函数void game(int i)先要判断上家的出牌类型,然后调用各类函数来判断那家能出牌压上家出牌。当上家出排为单张时,直接列出各玩家手中所有大于上家出牌点数的排即可。玩家从上述组合中选取一种出牌,选择后需要将玩家手中的牌的flag标志置为0,另外,游戏过程中需要随时统计大方手中所剩牌张数,如为0,则本回合游戏结束。 牌的数据结构如下所示: typedef struct card { char flower; int point; }c_type; 玩家的数据结构如下所示: typedef struct player { int n; struct card cd[14]; int flag[14]; int winPoint; }p_type; 程序框架 四、函数调用关系图 五、源程序 #include iostream #include ctime using namespace std; int cc; typedef struct card { char flower;//花色 int point;//点数 int pp;//排序有的编码 }c_type; c_type Card[53]; c_type buffer[5];//存储上玩家的出牌 int mm;//记录出牌张数 typedef struct player { int n;//牌数 struct card cd[14]; int flag[14];//flag=1,此牌未出 int winPoint;//赢点 }p_type; p_type Player[5]; int compare(const void *a,const void *b) { return (*(c_type *)a).pp-(*(c_type *)b).pp; } void initial() { int i; for(i=1;i=52;i++) { if(i=13) { Card[i].flower=S; Card[i].point=i; } else if(i=26) {

文档评论(0)

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

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档