一.运用python,写一段代码完成斗地主的发牌功能
具体要求:
a.牌的数字是(3-10,J,Q,K,A,大王,小王)除开大王小王每张牌有(♥,♠,♣,♦)四种花色
b.将牌发给三个人,每个人手上17张牌,最后剩下三张牌
c.要求每个人手中的牌都是有序的(按照斗地主的大小顺序有序)
二.具体代码实现
分为四个步骤:准备一副牌、洗牌、发牌、理牌
from random import shuffle
def deal_cards():
# 1.准备一副新牌
# '10'、'A'、'JOKER'、'joker'
colors = ['', '', '', '']
nums = [str(x) for x in range(2, 11)] + ['J', 'Q', 'K', 'A']
pokers = []
for n in nums:
for c in colors:
pokers.append(c + n)
pokers.extend(['JOKER', 'joker'])
# 2. 洗牌
shuffle(pokers)
# 3. 发牌
player1, player2, player3 = [], [], []
for _ in range(17):
player1.append(pokers.pop(0))
player2.append(pokers.pop(0))
player3.append(pokers.pop(0))
# 4. 理牌
table = {str(x): x for x in range(3, 11)}
table.update({'J': 11, 'Q': 12, 'K': 13, 'A': 14, '2': 15, 'oker': 16, 'OKER': 17})
player1.sort(key=lambda item: table[item[1:]])
player2.sort(key=lambda item: table[item[1:]])
player3.sort(key=lambda item: table[item[1:]])
return player1, player2, player3, pokers
p1, p2, p3, di = deal_cards()
print(p1)
print(p2)
print(p3)
print(di)