作业 模拟斗地主发牌
"""
创建者:卢俊杰
创建时间:2022/12/27,16:48
"""
from random import randrange
all_cards = list(range(0, 54))
length = 54
def send_card(nums):
"""
发牌
:param nums:发一次牌的张数
:return:
"""
for _ in range(0, 54, nums):
send_cards = []
for _ in range(0, nums):
global length
send_cards.append(all_cards.pop(randrange(0, length)))
length -= 1
yield send_cards
def numbers_to_card():
"""
牌与数字的对应关系
:return:
"""
huase_card = ['♠', '♥', '♣', '方块']
numbers_card = ['2', '3', '4', '5', '6', '7', '8', '9','10', 'j', 'q', 'k', 'a']
x = 0
all_cards = {}
for i in huase_card:
for j in numbers_card:
all_cards[x] = i + j
x += 1
all_cards[52] = '大王'
all_cards[53] = '小王'
return all_cards
def receive_card(nums):
"""
接收牌
:return:
"""
my_list = []
send = send_card(nums)
for i in range(0, 16, nums):
my_list.extend(next(send))
my_list.extend(next(send_card(17 % nums)))
sorted(my_list)
joke_dict = numbers_to_card()
card_list = [joke_dict[i] for i in my_list]
return card_list
print(receive_card(4))