• python数据结构与算法——小猫钓鱼(使用队列)


    按照《啊哈》里的思路实现这道题目,但是和结果不一样,我自己用一幅牌试了一下,发现是我的结果像一点,可能我理解的有偏差。

    # 小猫钓鱼
    # 计算桌上每种牌的数量
    # 使用defaultdict类,并设置默认类型为int型,即默认值为0
    # cardcounts = defaultdict(int)     
    # 不过deque有对应的方法
    def henhenhaahaa():
        from collections import deque
        hen = deque()           # hen的手牌
        haa = deque()           # haa的手牌
        table = deque()         # 桌上的牌
        
        # 手扎初始化
        for card in [2,4,1,2,5,6]:
            hen.append(card)
        for card in [3,1,3,5,6,4]:
            haa.append(card)
        
        
        # 当两个人的手牌都不为零食,游戏继续
        # 如果某人打出的牌与桌上的某张牌相同
        # 即可将两张牌以及中间的所有牌以此取走
        # 由于桌上同样的牌不可能超过两张
        # 只要计算目标牌的数量,以此取回即可
        
        # 刷新桌上的牌(打出牌,取牌)
        def refreshtable(person, card):
            table.append(card)                 
            if table.count(card)>=2:
                while table.count(card)>0:     
                    person.append(table.pop()) 
        
        while len(hen)!=0 and len(haa)!=0:
    #         print "tab:",list(table)
            i = hen.popleft()               # hen先出牌
    #         print "hen put",i
            refreshtable(hen, i)            # hen动作
    #         print "hen:",list(hen)
            
    #         print "tab:",list(table)
            j = haa.popleft()               # haa后出牌
    #         print "haa put",j
            refreshtable(haa, j)            # haa动作
    #         print "haa:",list(haa)
    #         print "tab:",list(table)
    #         print "next turn"
            
            
            
        if len(hen)!=0: 
            print "hen win"
            print "hen:",list(hen)
        else:
            print "haa win"
            print "haa:",list(haa)
        
        print "ontables"
        print "tab:",list(table)
    
    
    if __name__=="__main__":
        henhenhaahaa()
        # 我自己手动用牌模拟的结果根本就和书上不一样
        # 我觉得我自己的答案没啥问题
        # 单步模拟的结果也是一样的
  • 相关阅读:
    维克里拍卖 Vickrey auction
    弱占优策略--Weakly Dominant Strategy
    乱码电路(Garbled circuits)
    P和NP问题
    揭秘Facebook首个数据中心:全球15亿用户的账户信息都在这里
    数学符号“s.t.”的意义
    PKI系统深入介绍
    [转]公钥,私钥和数字签名这样最好理解
    Exif
    任我行 CRM 9.4
  • 原文地址:https://www.cnblogs.com/hanahimi/p/4692537.html
Copyright © 2020-2023  润新知