day16 - 发扑克 作业

"""
Author:泽万
Time:2021/12/20 17:38
"""
import random


def poker():
    """
    按顺序创建一副扑克,按照斗地主的大小进行排序创建的一副牌。
    :return: 返回54张牌
    """
    s = ['JOKER', 'joker']
    s1 = ['2', 'A', 'K', 'Q', 'J']
    for i in s1:
        s.append(str(i) + '♠')
        s.append(str(i) + '♥')
        s.append(str(i) + '♣')
        s.append(str(i) + '♦')

    for i in range(10, 2, -1):
        s.append(str(i) + '♠')
        s.append(str(i) + '♥')
        s.append(str(i) + '♣')
        s.append(str(i) + '♦')
    return s


def deal():
    """
    随机发牌给s1,s2,s3,代表玩家 底牌为:s4
    :return: 返回每一副牌
    """
    s = poker()  # 调用一副牌
    s1 = random.sample(s, k=17)
    s2 = random.sample(list(set(s) ^ set(s1)), k=17)
    s3 = random.sample(list(set(s) ^ set(s2) ^ set(s1)), k=17)
    s4 = random.sample(list(set(s) ^ set(s2) ^ set(s1) ^ set(s3)), k=3)  # 底牌
    return s1, s2, s3, s4


def sorts(ss):
    """
    给牌排序
    :param ss: 传递的副
    :return: None
    """
    p = poker()  # 调用原牌的顺序,原牌是按照斗地主大小进行排序。
    s111 = []  # 存储每张牌的下标
    for i in ss:
        for j in range(len(p)):
            if p[j] == i:
                s111.append(j)  # 把每张牌的下标储存
    s111.sort()  # 对下标进行排序
    for i in s111:
        print(p[i], end=' ')  # 打印排序后的牌
    print()


s11, s22, s33, s44 = deal()
sorts(s11)
sorts(s22)
sorts(s33)
sorts(s44)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值