陪女儿玩小猫钓鱼扑克游戏

在这里插入图片描述

之前疫情困在家里实在无聊,想起小时候和妈妈玩小猫钓鱼的游戏,女儿四岁,就和女儿尝试玩下。

规则很简单,一副牌54张,两个人平均分(大部分情况女儿分得多),牌面向下,每人轮流拿自己牌的
最上面那张放到台面上,台面的牌堆按放的顺序摆放。如果台面上有相同数字的牌,
就把当前放的牌到相同数字的牌收入自己的牌堆下面(意思小猫钓到鱼了)。

玩了一下午还不错,小家伙蛮开心的,和我小时候一样,总是喜欢钓到大小王🃏。

import random
from collections import deque


def play():
    # black joker + red joker + rest
    cards = list('BR' + 'A23456789TJQK' * 4)
    random.shuffle(cards)

    players = (deque(cards[:27]), deque(cards[27:]))
    print(players)
    pool = []
    turn = 0

    while len(players[0]) > 0 and len(players[1]) > 0:
        player = turn % 2
        card = players[player].pop()
        if card in pool:
            idx = pool.index(card)
            players[player].extendleft(pool[idx:] + [card])
            pool = pool[:idx]
        else:
            pool.append(card)
        turn += 1
        print(f'{turn} -> {players}')

运行了几次,发现都能收敛,游戏都能结束。严格的数学推导回头思考下,还有结束时候平均经过多少轮。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值