当前位置: 首页 > news >正文

兰州高端网站网站模板 博客

兰州高端网站,网站模板 博客,佛山 建站公司,网站地址是什么是Udacity课程的第一个项目。先从宏观把握一下思路#xff0c;目的是做一个比较德州扑克大小的问题首先#xff0c;先抽象出一个处理的函数#xff0c;它根据返回值的大小给出结果。之后我们在定义如何比较两个或者多个手牌的大小#xff0c;为方便比较大小#xff0c;我们…是Udacity课程的第一个项目。先从宏观把握一下思路目的是做一个比较德州扑克大小的问题首先先抽象出一个处理的函数它根据返回值的大小给出结果。之后我们在定义如何比较两个或者多个手牌的大小为方便比较大小我们先对5张牌进行预处理将其按照降序排序如下def card_ranks(hand):ranks [--23456789TJQKA.INDEX(r) for r, s in hand]ranks.sort(reverseTrue)return ranks然后我们可以枚举出一共有9种情况并用数字代表每一种情况的等级利用Python的比较功能将等级放在第一位如果等级相同那么再比较后面的。def hand_rank(hand):Return a value indicating the ranking of a hand.ranks card_ranks(hand)if straight(ranks) and flush(hand):return (8, max(ranks))elif kind(4, ranks):return (7, kind(4, ranks), kind(1, ranks))elif kind(3, ranks) and kind(2, ranks):return (6, kind(3, ranks), kind(2, ranks))elif flush(hand):return (5, ranks)elif straight(ranks):return (4, max(ranks))elif kind(3, ranks):return (3, kind(3, ranks), ranks)elif two_pair(ranks):return (2, two_pair(ranks), ranks)elif kind(2, ranks):return (1, kind(2, ranks), ranks)else:return (0, ranks)可以看到如果等级相同接下来比较的是每套牌中牌的大小了。同时我们需要三个函数代表同花顺子以及kind(n, ranks),代表ranks有n张牌的点数。这里的三个函数实现非常巧妙利用了set去重的特性。def straight(ranks):return (max(ranks) - min(ranks)) 4 and len(set(ranks)) 5def flush(hand):suit [s, for r, s in hand]return len(set(suit)) 1def kind(n, ranks):for s in ranks:if ranks.count(s) n : return sreturn None我们发现有一种情况是含有两个对于是需要一个函数来判断是否是这种情况这个函数中调用了kind()函数由于kind()函数满足短路特性只会返回先得到的满足情况的点数于是将其翻转后在调用一边kind,若得到的结果相同那么就只有一个对(或者没有)否则就有两个。def two_pairs(ranks):pair kind(2, ranks)lowpair kind(2, list(reverse(ranks)))if pair ! lowpair:return (pair, lowpair)else:return None好了整体的骨架算是搭完了接下来处理会产生bug的情况首先是A2345当排序时由于A被算作14所以针对这个问题需要单独列一个if处理A是最低def card_ranks(hand):ranks [--23456789TJQKA.INDEX(r) for r, s in hand]ranks.sort(reverseTrue)return [5, 4, 3, 2, 1] if (ranks [14, 5, 4, 3, 2] else ranks之后就是进一步的简化了思路挺好的def poker(hands):return allmax(hands, keyhand_ranks)def allmax(iterable, keyNone):result, maxval [], Noneket key or lambda(x): xfor x in iterable:xval key(x)if not result or xval maxval:result, maxval [x], xvalelif:result.append(x)return result大于就取代等于就加入小于不作处理import randommydeck [rs for r in 23456789TJKQA for s inSHDC]def deal(numhands, n5, deck [rs for r in 23456789TJKQA for s inSHDC]):random.shuffle(deck)return [deck[n*i:n*(i 1)] for i in range(numhands)]def hand_ranks(hand):groups group[--23456789TJQKA.index(r) for r, s in hand]counts, ranks unzip(groups)if rnaks (14, 5, 4, 3, 2, 1):ransk (5, 4, 3, 2, 1)straight len(ranks) 5 and max(ranks) - min(ranks) 4flush len(set([s for r, s in hand])) 1return(9 if (5,) count else8 if straight and flush else7 if (4, 1) counts else6 if (3, 2) counts else5 if flush else4 if straight else3 if (3, 1, 1) counts else2 if (5, 1, 1) counts else1 if (2, 1, 1, 1) counts else0), ranksdef group(items):groups [(items.count(x), x) for x in set(items)]return sorted(groups, reverse True)def unzips(pairs):return zip(*pairs)def hand_ranks(hand):groups group[--23456789TJQKA.index(r) for r, s in hand]counts, ranks unzip(groups)if rnaks (14, 5, 4, 3, 2, 1):ransk (5, 4, 3, 2, 1)straight len(ranks) 5 and max(ranks) - min(ranks) 4flush len(set([s for r, s in hand])) 1return max(count_ranks[counts], 4*straight 5 * flush), rankscount_rankings {(5,):10, (4, 1):7, (3,2):6, (3,1,1):3, (2,2,1):2,(2,1,1,1): 1,(1,1,1,1,1):0}总结下面对一个问题的思维步骤started:understand problems look at specification See if it make sensedefine the piece of problem reuse the piece you have test! explore最后是是的程序在各个方面达到均衡correctness elegance efficienct featrues总结以上就是本文关于Python实现比较扑克牌大小程序代码示例的全部内容希望对大家有所帮助。感兴趣的朋友可以继续参阅本站Python3简单实例计算同花的概率代码Python语言描述最大连续子序列和Python数据可视化正态分布简单分析及实现代码如有不足之处欢迎留言指出。感谢朋友们对本站的支持
http://www.yutouwan.com/news/345867/

相关文章:

  • 国外网站备案查询台州电子商务网站开发
  • 公司的网站建设价格wordpress旧版编辑器
  • 做网站应该会什么桂林什么公司做网站推广好
  • 招聘网站咋做国外极简网站
  • 律师事务所网站设计方案网站建设公司的业务规划
  • 如何维护网站的运营免费erp系统软件有哪些
  • 百度教育小程序天津百度seo代理
  • 手机网站首页新闻模板公司网站模板内容
  • 免费p2p网站建设北京公司名称
  • pr效果做的好的网站有哪些大学网站建设情况汇报
  • wordpress 站内搜索慢云南网站设计
  • 广州天河建网站医疗器械做网站到哪里先备案
  • 免费申请一个网站宁波seo外包sem
  • 建站用什么工具内蒙古建设厅网站
  • 国家出台建设工程政策的网站.net网站制作
  • 如何查看一个网站是用什么程序做的论坛网站开发demo
  • 个人网站备案核验单填写洋气的文化传媒公司名字
  • 外贸网站开发开发wordpress 主机迁移
  • 徐州云龙城乡建设局网站盐山网站建设价格
  • 网站建设推广文案银川网站建设银川
  • 静态网站挂马企业邮箱注册申请官网
  • 做网站和做平台的区别医院网站建设官网
  • 什么网站可以做项目网站小功能
  • 烟台搭建网站建设制作网站到期怎么续费
  • 做爰网站有哪些商务软文写作300
  • 怎么建设网站视频教程溧阳人才网 网站开发
  • 郑州做企业网站哪家好温州seo网站管理
  • 创新的中小型网站建设做网站的证书
  • 静宁网站建设广州专业做外贸网站
  • 网站开发需求表模板帝国企业网站模板