python基础:模拟斗地主发牌

python基础:模拟斗地主发牌并按顺序整理好

import random


def getJoker():
    dict_jk = {1: 'King', 2: 'king'}
    x = 3
    list_color = ['♠', '♥', '♣', '♦']
    list_num = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
    for i in list_num:
        for j in list_color:
            joke = j + i
            while x <= 54:
                dict_jk[x] = joke
                x += 1
                break
    return dict_jk


def send():
    botton = []
    p1 = []
    p2 = []
    p3 = []
    dict_sh = getJoker()
    newlist = list(dict_sh.items())  # 把字典的键值对一对一对取出来,并转成列表
    random.shuffle(newlist)  # 打乱顺序
    for i in range(len(newlist)):  # 发牌
        if i < 51 and i % 3 == 0:
            p1.append(newlist[i])
        elif i < 51 and i % 3 == 1:
            p2.append(newlist[i])
        elif i < 51 and i % 3 == 2:
            p3.append(newlist[i])
        else:
            botton.append(newlist[i])
    p1 = sorted(p1, key=lambda x: x[0])  # 使用匿名函数按照列表内的元素的第一个值进行排序
    p2 = sorted(p2, key=lambda x: x[0])
    p3 = sorted(p3, key=lambda x: x[0])
    p1 = [i[1] for i in p1]  # 取排好序后的元素的牌部分,不要序号数字了
    p2 = [i[1] for i in p2]
    p3 = [i[1] for i in p3]
    botton = [i[1] for i in botton]
    return p1, p2, p3, botton

p1,p2,p3,b=send()
print(p1)
print(p2)
print(p3)
print(b)

结果

[‘king’, ‘♥A’, ‘♠2’, ‘♦2’, ‘♣3’, ‘♦3’, ‘♠5’, ‘♣5’, ‘♥6’, ‘♠7’, ‘♦7’, ‘♣8’, ‘♦8’, ‘♦9’, ‘♥Q’, ‘♣Q’, ‘♠K’]
[‘♠A’, ‘♠4’, ‘♥4’, ‘♣4’, ‘♦5’, ‘♦6’, ‘♣7’, ‘♠8’, ‘♥8’, ‘♥9’, ‘♠10’, ‘♥10’, ‘♣10’, ‘♠J’, ‘♦J’, ‘♠Q’, ‘♦K’]
[‘King’, ‘♣A’, ‘♦A’, ‘♣2’, ‘♠3’, ‘♦4’, ‘♥5’, ‘♠6’, ‘♣6’, ‘♥7’, ‘♠9’, ‘♣9’, ‘♦10’, ‘♥J’, ‘♦Q’, ‘♥K’, ‘♣K’]
[‘♥2’, ‘♣J’, ‘♥3’]

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值