利用方法:
1. random.randint( ) 随机抽取数字 方法
2.random.sample((抽取范围的参数),(抽取的个数)) 返回的是列表 所以用[0]可以输出里面的元素
import random
# 1. 创建牌
# 花色
color = ["\u2660", "\u2663", "\u2665", "\u2666"]
# 数字
number = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"]
# 大小鬼
JOKER = ["KING", "QUEEN"]
# 空列表存放牌
cards = []
for i in color:
for j in number:
# 字符串拼接
cards.append(i + j)
# 加入大小鬼
cards.extend(JOKER)
# 2. 洗牌的方法(参数:牌/次数(默认=1))
def fy_shuffle(s, n=1):
for i in range(n):
target = list(s)
res = []
while target:
k = random.randint(0, len(target) - 1)
res.append(target.pop(k))
return res
# 3. 发牌
def del_cards():
# 3.1 确定玩家
a = input("请输入玩家1号的名字:")
b = input("请输入玩家2号的名字:")
c = input("请输入玩家3号的名字:")
# 存放牌
r = {}
r[a],r[b],r[c] = [],[],[]
# 3.2 洗牌
new_cards = fy_shuffle(cards,3)
# 3.3 发牌
for i in range(17):
r[a].append(new_cards.pop())
r[b].append(new_cards.pop())
r[c].append(new_cards.pop())
# 3.4 选地主
d = random.sample((a,b,c),1)[0]
print(f"这一轮的地主是:")
r[d].extend((new_cards.pop(),new_cards.pop(),new_cards.pop()))
print(f"[{a}]这一轮的牌是:[{' '.join(r[a])}]\n")
print(f"[{b}]这一轮的牌是:[{' '.join(r[b])}]\n")
print(f"[{c}]这一轮的牌是:[{' '.join(r[c])}]\n")
# 4.启动游戏
del_cards()