python实现斗地主发牌

import random


hs = ['\u2660', '\u2663', '\u2665', '\u2666']                                   # 花色
num = ['3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A', '2']        # 牌号
poke = {}                                                                       # 一副扑克
flag = 1                                                                        # 每张牌的标记
for i in num:
	for j in hs:
		poke[flag]=j+i
		flag += 1
poke[flag]="小王"
poke[flag+1]="大王"

r = random.sample(range(1, 55), 54)                     # 创建一个1-54的随机列表,用于随机分配牌
key = [r[0:17], r[17:34], r[34:51], r[51:54]]           # 【17, 17, 17, 3】,作用你懂得
players = {
	"player_1" : [j for i,j in poke.items() if i in key[0]] ,
	"player_2" : [j for i,j in poke.items() if i in key[1]] ,
	"player_3" : [j for i,j in poke.items() if i in key[2]]
}
yp = [j for i,j in poke.items() if i in key[3]]


# 抢地主阶段
landowner:int = random.sample(range(0,3), 1)            # 随机从1-3的玩家选出一名地主
for player in players.keys():
	if int(player[7:8])==landowner[0]+1:                # 1是映射偏移量
		landowners = key[landowner[0]]+key[3]           # 将三张余牌分配给地主
		players[player] = [ j for i,j in poke.items() if i in landowners ]

# ---------------------------------------------------------------------------------------------------------------------------
print("这副扑克牌是:{}".format(poke))
print("player_1有{}张牌,分别是:{}".format(len(players["player_1"]), players["player_1"]))
print("player_2有{}张牌,分别是:{}".format(len(players["player_2"]), players["player_2"]))
print("player_3有{}张牌,分别是:{}".format(len(players["player_3"]), players["player_3"]))

# 这副扑克牌是:{1: '♠3', 2: '♣3', 3: '♥3', 4: '♦3', 5: '♠4', 6: '♣4', ·····,  53: '小王', 54: '大王'}
# player_1有20张牌,分别是:['♠3', '♣3', '♥3', '♣4', '♥4', '♦4', '♠5', '♦5', '♣7', '♠8', '♦8', '♦9', '♣J', '♣Q', '♥Q', '♥K', '♣A', '♥A', '♦A', '大王']
# player_2有17张牌,分别是:['♠4', '♣5', '♥5', '♠6', '♥6', '♥7', '♥8', '♣9', '♥9', '♠10', '♥10', '♠J', '♠Q', '♠K', '♣K', '♠A', '♦2']
# player_3有17张牌,分别是:['♦3', '♣6', '♦6', '♠7', '♦7', '♣8', '♠9', '♣10', '♦10', '♥J', '♦J', '♦Q', '♦K', '♠2', '♣2', '♥2', '小王']

你可能感兴趣的:(Python)