import json
from collections import namedtuple Card = namedtuple('Card', ['rank', 'suit']) # rank 牌面的大小 suit牌面的花色 class FranchDeck:
ranks = [str(n) for n in range(2, 11)] + list('JQKA') # 2-A
suits = ['红心', '方板', '梅花', '黑桃'] def __init__(self):
self._cards = [Card(rank, suit) for rank in FranchDeck.ranks
for suit in FranchDeck.suits] def __len__(self):
return len(self._cards) def __getitem__(self, item):
return self._cards[item] def __setitem__(self, key, value):
self._cards[key] = value def __str__(self):
return json.dumps(self._cards, ensure_ascii=False) deck = FranchDeck()
print(deck)
# [["2", "红心"], ["2", "方板"], ["2", "梅花"], ["2", "黑桃"], ["3", "红心"],
# ["3", "方板"], ["3", "梅花"], ["3", "黑桃"], ["4", "红心"], ["4", "方板"],
# ["4", "梅花"], ["4", "黑桃"], ["5", "红心"], ["5", "方板"], ["5", "梅花"],
# ["5", "黑桃"], ["6", "红心"], ["6", "方板"], ["6", "梅花"], ["6", "黑桃"],
# ["7", "红心"], ["7", "方板"], ["7", "梅花"], ["7", "黑桃"], ["8", "红心"],
# ["8", "方板"], ["8", "梅花"], ["8", "黑桃"], ["9", "红心"], ["9", "方板"],
# ["9", "梅花"], ["9", "黑桃"], ["10", "红心"], ["10", "方板"], ["10", "梅花"],
# ["10", "黑桃"], ["J", "红心"], ["J", "方板"], ["J", "梅花"], ["J", "黑桃"],
# ["Q", "红心"], ["Q", "方板"], ["Q", "梅花"], ["Q", "黑桃"], ["K", "红心"],
# ["K", "方板"], ["K", "梅花"], ["K", "黑桃"], ["A", "红心"], ["A", "方板"],
# ["A", "梅花"], ["A", "黑桃"]] print(deck[10]) # 索引为10 的 Card(rank='4', suit='梅花')
from random import choice # choice 依赖于len
print(choice(deck))
print(choice(deck)) from random import shuffle # 洗牌,shuffle依赖于setitem
shuffle(deck)
print(deck[10])

day30 纸牌游戏的更多相关文章

  1. python 全栈开发,Day30(纸牌游戏,异常和错误,异常处理)

    一.纸牌游戏                                                                                              ...

  2. HDU 2209 翻纸牌游戏 状态BFS

    翻纸牌游戏 Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem De ...

  3. hdu2209翻纸牌游戏

    翻纸牌游戏 Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  4. 翻纸牌游戏(dfs回溯)

    翻纸牌游戏 Time Limit : 9000/3000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submiss ...

  5. HDU 2209 翻纸牌游戏(DFS)

    题目链接 Problem Description 有一种纸牌游戏,很有意思,给你N张纸牌,一字排开,纸牌有正反两面,开始的纸牌可能是一种乱的状态(有些朝正,有些朝反),现在你需要整理这些纸牌.但是麻烦 ...

  6. HDU 2209 翻纸牌游戏

    翻纸牌游戏 Time Limit : 9000/3000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submiss ...

  7. Python 纸牌游戏

    纸牌游戏 # card.py from random import shuffle class Card: # 黑桃,红桃,方块,梅花 suits = ['spades', 'hearts', 'di ...

  8. 实现纸牌游戏的随机抽牌洗牌过程(item系列几个内置方法的实例)

    实现纸牌游戏的随机抽牌洗牌过程(item系列几个内置方法的实例) 1.namedtuple:命名元组,可以创建一个没有方法只有属性的类 from collections import namedtup ...

  9. Java学习之模拟纸牌游戏,List的ArrayList,Map的HashMap,重写Collections类的sort方法对指定类进行通过特定属性排序,输入异常处理等的学习

    首先放上测试效果图 设计框架 具体的代码实现 创建玩家类 public class Player implements Comparable<Player>{ int id; String ...

随机推荐

  1. 免安装的Tomcat基本配置和安装

    大家都知道tomcat吧!因为Tomcat 技术先进.性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器,也是运行Servlet和JS ...

  2. Maven学习笔记-04-Eclipse下maven项目在Tomcat7和Jetty6中部署调试

    现在最新的Eclipse Luna Release 已经内置了Maven插件,这让我们的工作简洁了不少,只要把项目直接导入就可以,不用考虑插件什么的问题,但是导入之后的项目既可以部署在Tomcat也可 ...

  3. React-Route的属性exact

    exact是Route下的一条属性,一般而言,react路由会匹配所有匹配到的路由组价,exact能够使得路由的匹配更严格一些. exact的值为bool型,为true是表示严格匹配,为false时为 ...

  4. C#搭建CEF(CEFGLUE) 环境。

    CEF(CEFGLUE)如果想做浏览器的,对这个应该不陌生了,相关资料执行百度了,现在写这文章这是按当前时间做一个环境搭建时所需要的资料的一个收集. 1:下载Xilium.CefGlue项目源码. 链 ...

  5. 批量实现多台服务器之间ssh无密码登录的相互信任关系

    最近IDC上架了一批hadoop大数据业务服务器,由于集群环境需要在这些服务器之间实现ssh无密码登录的相互信任关系.具体的实现思路:在其中的任一台服务器上通过"ssh-keygen -t ...

  6. split-brain 脑裂问题(Keepalived)

    脑裂(split-brain)指在一个高可用(HA)系统中,当联系着的两个节点断开联系时,本来为一个整体的系统,分裂为两个独立节点,这时两个节点开始争抢共享资源,结果会导致系统混乱,数据损坏.对于无状 ...

  7. Docker容器学习梳理 - SSH方式登陆容器

    前面几篇已经介绍了Docker基础环境的部署,下面介绍下通过ssh方式登陆Docker容器的操作记录(其实不太建议直接用ssh去连接上容器的想法,虽然可以,但是有很多弊端,而且docker已经提供了容 ...

  8. 浏览器跨域请求之credentials

    -时间起源- 前段时间,需要弄个简单的网站出来,访问远程的api服务. 我是这么做的.首先是在搭建一个nodejs服务来运行前端页面.在我请求登录的时候,能成功返回相应的成功信息.然后,当我再次请求读 ...

  9. c++ 中关于一些变量不能声明的问题

    j0,j1,jn,y0,y1,yn被c++中某些函数占用了,所以是不能被声明的,今天就遇到了这个问题,结果我在自己写的程序中找了半天都没找到重复申明的y1

  10. 个人博客作业Week3--必应词典案例分析

    第一部分  调研,评测 (软件的bug,功能评测,黑箱测试,第8章 用户调研,12 章软件的用户体验) 下载并使用,按照描述的bug定义,找出几个功能性的比较严重的bug.至少两个.用专业的语言描述( ...