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])
  • 相关阅读:
    Poj3678:Katu Puzzle
    2-SAT
    Bzoj3238: [Ahoi2013]差异
    expressJS
    expressJS
    expressJS
    [转]View属性 之 paddingStart & paddingEnd
    在Activity之间使用Intent传值和Bundle传值的区别和方式
    [转]Java初始化顺序总结
    final关键字修饰的变量
  • 原文地址:https://www.cnblogs.com/wzc27229/p/11185167.html
Copyright © 2011-2022 走看看