斗地主牌玩法

from random import shuffle


def create_pokers():
    """创建一副牌,并且将牌的顺序打乱"""
    colors = ['♥', '♠', '♣', '♦']
    nums = [str(x) for x in range(2, 11)] + ['A', 'K', 'Q', 'J']
    # pokers = []
    # for color in colors:
    #     for num in nums:
    #         pokers.append(color+num)
    pokers = [color+num for color in colors for num in nums]
    pokers.extend(['joker', 'JOKER'])
    shuffle(pokers)
    return pokers


num_dict = {}

def poker_sort(pokers: list):
    # poker_dict = {'3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, '10': 10,
    #               'J': 11, 'Q': 12, 'K': 13, 'A': 14, '2': 15, 'joker': 16, 'JOKER': 17}
    global num_dict
    if not num_dict:
        # print('创建字典')
        num_dict = {str(x): x for x in range(3, 11)}
        num_dict.update({'J': 11, 'Q': 12, 'K': 13, 'A': 14, '2': 15, 'oker': 16, 'OKER': 17})
    pokers.sort(key=lambda x: num_dict[x[1:]], reverse=True)


def start_game():
    # 1. 创建牌 、2. 洗牌
    pokers = create_pokers()
    # 3. 发牌
    # 方法一:
    # player1 = pokers[0:51:3]
    # player2 = pokers[1:51:3]
    # player3 = pokers[2:51:3]
    # 方法二:
    player1 = []
    player2 = []
    player3 = []
    pokers = iter(pokers)
    for _ in range(17):
        player1.append(next(pokers))
        player2.append(next(pokers))
        player3.append(next(pokers))
    # 4. 理牌
    poker_sort(player1)
    poker_sort(player2)
    poker_sort(player3)

    return tuple(player1), tuple(player2), tuple(player3), tuple(pokers)


if __name__ == '__main__':
    x, y, z, t = start_game()
    print(x)
    print(y)
    print(z)
    print(t)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值