zoukankan      html  css  js  c++  java
  • 内置方法案例

    纸牌游戏

    import json
    from collections import namedtuple
    
    """
    Tuple还有一个兄弟,叫namedtuple。虽然都是tuple,但是功能更为强大。
    对于namedtuple,你不必再通过索引值进行访问,你可以把它看做一个字典
    通过名字进行访问,只不过其中的值是不能改变的。
    """
    
    Card = namedtuple("Card", ["rank", "suit"])  # rank 是牌面大小,suit是花色
    
    
    class FranchDeck:
        ranks = [str(n) for n in range(2, 11)] + list("JQKA")  # 牌面大小
        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[10])  # 获取牌
    
    # 洗牌
    from random import choice
    
    print(choice(deck))
    print(choice(deck))
    # 切片
    from random import shuffle
    
    shuffle(deck)
    print(deck[10])
    print(deck[:5])
  • 相关阅读:
    NPM 重新回炉
    构建工具
    工作的环境部署
    Proxy 代理
    Promise 的 用法及实现
    JS 的 继承
    动态规划——LCS
    矩阵连乘——动态规划
    线段树&树状数组
    SpringAOP
  • 原文地址:https://www.cnblogs.com/wzc27229/p/11185167.html
Copyright © 2011-2022 走看看