用python扑克随机发牌_python练手程序1-发扑克牌

importrandomimportitertoolsdef Poker_Deal(a = 4, b = 13): #a:游戏人数,b:每人手牌数量

Flower = ['黑桃', '红桃', '方块', '草花']

Number= ['A', 'K', 'Q', 'J', '10', '9', '8', '7', '6', '5', '4', '3', '2']

Poker_Cards= [(x,y) for x,y in itertools.product(Flower, Number)] #一副52张的扑克牌按花色及大小排序

Rest_Cards = Poker_Cards #没发出的牌

Player =[]for i inrange(a):

Player.append(random.sample(Rest_Cards, b))#随机Player[i]的手牌

Player[i].sort(key = lambda x:Poker_Cards.index(x)) #Player[i]的手牌排序

Rest_Cards = [x for x in Rest_Cards if x not in Player[i]] #更新没发出的牌

print('Player', i+1, ':')for j inFlower:print(j, ':', end = ' ')for k inPlayer[i]:if k[0]==j:print(k[1], end = ' ') #同一花色的手牌按大小输出

print() #不同花色的手牌换行输出

print() #不同玩家的手牌间空行

if len(Rest_Cards) < b:print('牌发完了')break #防止输入a*b>52报错

测试1:

Poker_Deal() # 桥牌发牌(默认)

测试结果1:

Player 1 :

黑桃 : J 4 2

红桃 : K J 7 6

方块 : Q 7

草花 : J 9 8 7

Player 2 :

黑桃 : K Q 10 8 7 6

红桃 : A 5

方块 : K 10 8 4

草花 : 3

Player 3 :

黑桃 : A 9 3

红桃 : Q 8 3 2

方块 : 2

草花 : K 10 6 4 2

Player 4 :

黑桃 : 5

红桃 : 10 9 4

方块 : A J 9 6 5 3

草花 : A Q 5

牌发完了

测试2:

Poker_Deal(6,2) #6人场德州扑克发牌

测试结果2:

Player 1 :

黑桃 : 5

红桃 :

方块 : A

草花 :

Player 2 :

黑桃 :

红桃 :

方块 : K 8

草花 :

Player 3 :

黑桃 : 9

红桃 : 4

方块 :

草花 :

Player 4 :

黑桃 :

红桃 : Q

方块 :

草花 : 3

Player 5 :

黑桃 : 10 2

红桃 :

方块 :

草花 :

Player 6 :

黑桃 :

红桃 : 6

方块 :

草花 : 9

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值